home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / PROGRAM / UCRASM25.ARJ / TESTFP.ASM < prev    next >
Assembly Source File  |  1991-10-31  |  56KB  |  4,342 lines

  1.         include        stdlib.a
  2.         includelib     stdlib.lib
  3. ;
  4. lesi        macro    adrs
  5.         mov     di, seg adrs
  6.         mov    es, di
  7.         lea    di, adrs
  8.         endm
  9. ;
  10. ldxi        macro    adrs
  11.         mov    dx, seg adrs
  12.         lea    si, adrs
  13.         endm
  14. ;
  15. ;****************************************************************************
  16. ;
  17. ; T  E  S  T       S  U  I  T  E      F  O  R
  18. ;
  19. ;    Floating Point Routines in
  20. ;
  21. ; T H E   U C R     S  T  A  N  D  A  R  D
  22. ;
  23. ; L  I  B  R  A  R  Y     F  O  R     A  S  S  E  M  B  L  Y
  24. ;
  25. ; L  A  N  G  U  A  G  E     P  R  O  G  R  A  M  M  E  R  S
  26. ;
  27. ;****************************************************************************
  28. ;
  29. ;
  30. ; Global variables go here:
  31. ;
  32. StdData        segment    para public 'sldata'
  33.         extrn    fpacc:byte
  34. StdData        ends
  35. ;
  36. ;
  37. dseg        segment    para public 'data'
  38. ;
  39. MemAvail    dw    ?
  40. ;
  41. Roundatof    dt    5.0e-19
  42. ;
  43. ; Floating point values:
  44. ;
  45. SPConst1    dd    1.0
  46. SPConst10    dd    -10.25
  47. SPConst100    dd    100.50
  48. SPConst1000    dd    -1000.75
  49. SPConst10000    dd    10000.22
  50. SPConst100000    dd    -100000.44
  51. SPConst1000000    dd    1000000.66
  52. SPConst123456    dd    -123456.88
  53. SPConst65432    dd    65432.11
  54. SPConst9876    dd    -9876.33
  55. SPConst192    dd    192.55
  56. SPConst38    dd    -38.77
  57. SPConst9    dd    9.99
  58. ;
  59. DPConst1    dq    1.0
  60. DPConst10    dq    -10.25
  61. DPConst100    dq    100.50
  62. DPConst1000    dq    -1000.75
  63. DPConst10000    dq    10000.22
  64. DPConst100000    dq    -100000.44
  65. DPConst1000000    dq    123456789012345678.66
  66. DPConst123456    dq    -123456.88
  67. DPConst65432    dq    65432.11
  68. DPConst9876    dq    -9876.33
  69. DPConst192    dq    192.55
  70. DPConst38    dq    -38.77
  71. DPConst9    dq    9.99
  72. ;
  73. EPConst1    dt    1.0
  74. EPConst10    dt    -10.25
  75. EPConst100    dt    100.50
  76. EPConst1000    dt    -1000.75
  77. EPConst10000    dt    10000.22
  78. EPConst100000    dt    -100000.44
  79. EPConst1000000    dt    123456789012345678901.66
  80. EPConst123456    dt    -123456.88
  81. EPConst65432    dt    65432.11
  82. EPConst9876    dt    -9876.33
  83. EPConst192    dt    192.55
  84. EPConst38    dt    -38.77
  85. EPConst9    dt    9.99
  86. ;
  87. Temp        dt    ?
  88. Output        db      128 dup (0)        ;Tests ftoa/2
  89. ;
  90. Testatof1    db    "1.2345678901234567890",0
  91. Testatof2    db    "1.23456789",0
  92. Testatof3    db    "123456789",0
  93. Testatof4    db    "-1.0",0
  94. Testatof5    db    "1.0e10",0
  95. Testatof6    db    "-1.0e10",0
  96. Testatof7    db    "1.0e-10",0
  97. Testatof8    db    "-1.0e-10",0
  98. Testatof9    db    "1234567890e-9",0
  99. Testatof10    db    "1.0e0",0
  100. Testatof11    db    "1.0e1",0
  101. Testatof12    db    "1.0e2",0
  102. Testatof13    db    "1.0e3",0
  103. Testatof14    db    "1.0e4",0
  104. Testatof15    db    "1.0e5",0
  105. Testatof16    db    "1.0e7",0
  106. Testatof17    db    "1.0e8",0
  107. Testatof18    db    "1.0e9",0
  108. Testatof19    db    "1.0e15",0
  109. Testatof20    db    "1.0e16",0
  110. Testatof21    db    "1.0e17",0
  111. Testatof22    db    "1.0e31",0
  112. Testatof23    db    "1.0e32",0
  113. Testatof24    db    "1.0e33",0
  114. Testatof25    db    "1.0e63",0
  115. Testatof26    db    "1.0e64",0
  116. Testatof27    db    "1.0e65",0
  117. Testatof28    db    "1.0e127",0
  118. Testatof29    db    "1.0e128",0
  119. Testatof30    db    "1.0e129",0
  120. Testatof31    db    "1.0e255",0
  121. Testatof32    db    "1.0e256",0
  122. Testatof33    db    "1.0e257",0
  123. Testatof34    db    "1.0e511",0
  124. Testatof35    db    "1.0e512",0
  125. Testatof36    db    "1.0e513",0
  126. Testatof37    db    "1.0e1023",0
  127. Testatof38    db    "1.0e1024",0
  128. Testatof39    db    "1.0e1025",0
  129. Testatof40    db    "1.0e2048",0
  130. ;
  131. Testatof41    db    "9.999999999999999e0",0
  132. Testatof42    db    "9.999999999999999e1",0
  133. Testatof43    db    "9.999999999999999e3",0
  134. Testatof44    db    "9.999999999999999e7",0
  135. Testatof45    db    "9.999999999999999e15",0
  136. Testatof46    db    "9.999999999999999e31",0
  137. Testatof47    db    "9.999999999999999e63",0
  138. Testatof48    db    "9.999999999999999e127",0
  139. Testatof49    db    "9.999999999999999e255",0
  140. Testatof50    db    "9.999999999999999e511",0
  141. Testatof51    db    "9.999999999999999e1023",0
  142. Testatof52    db    "9.999999999999999e2047",0
  143. ;
  144. mTestatof11    db    "1.0e-1",0
  145. mTestatof12    db    "1.0e-2",0
  146. mTestatof13    db    "1.0e-3",0
  147. mTestatof14    db    "1.0e-4",0
  148. mTestatof15    db    "1.0e-5",0
  149. mTestatof16    db    "1.0e-7",0
  150. mTestatof17    db    "1.0e-8",0
  151. mTestatof18    db    "1.0e-9",0
  152. mTestatof19    db    "1.0e-15",0
  153. mTestatof20    db    "1.0e-16",0
  154. mTestatof21    db    "1.0e-17",0
  155. mTestatof22    db    "1.0e-31",0
  156. mTestatof23    db    "1.0e-32",0
  157. mTestatof24    db    "1.0e-33",0
  158. mTestatof25    db    "1.0e-63",0
  159. mTestatof26    db    "1.0e-64",0
  160. mTestatof27    db    "1.0e-65",0
  161. mTestatof28    db    "1.0e-127",0
  162. mTestatof29    db    "1.0e-128",0
  163. mTestatof30    db    "1.0e-129",0
  164. mTestatof31    db    "1.0e-255",0
  165. mTestatof32    db    "1.0e-256",0
  166. mTestatof33    db    "1.0e-257",0
  167. mTestatof34    db    "1.0e-511",0
  168. mTestatof35    db    "1.0e-512",0
  169. mTestatof36    db    "1.0e-513",0
  170. mTestatof37    db    "1.0e-1023",0
  171. mTestatof38    db    "1.0e-1024",0
  172. mTestatof39    db    "1.0e-1025",0
  173. mTestatof40    db    "1.0e-2048",0
  174. ;
  175. mTestatof41    db    "9.999999999999999e-1",0
  176. mTestatof42    db    "9.999999999999999e-2",0
  177. mTestatof43    db    "9.999999999999999e-3",0
  178. mTestatof44    db    "9.999999999999999e-5",0
  179. mTestatof45    db    "9.999999999999999e-9",0
  180. mTestatof46    db    "9.999999999999999e-17",0
  181. mTestatof47    db    "9.999999999999999e-33",0
  182. mTestatof48    db    "9.999999999999999e-65",0
  183. mTestatof49    db    "9.999999999999999e-129",0
  184. mTestatof50    db    "9.999999999999999e-257",0
  185. mTestatof51    db    "9.999999999999999e-513",0
  186. mTestatof52    db    "9.999999999999999e-1025",0
  187. mTestatof53    db    "9.999999999999999e-2049",0
  188. ;
  189. ;
  190. dseg        ends
  191. ;
  192. ;
  193. ;
  194. ;
  195. cseg        segment    para public 'code'
  196.         assume    cs:cseg, ds:dseg
  197. ;
  198. ;
  199. ;
  200. ;
  201.         public    PSP
  202. PSP        dw    ?
  203. ;
  204. cr        equ    13
  205. lf        equ    10
  206. ;
  207. ;
  208. ; Main is the main program.  Program execution always begins here.
  209. ;
  210. Main        proc
  211.         mov    cs:PSP, es        ;Save pgm seg prefix
  212.         mov    ax, seg dseg        ;Set up the segment registers
  213.         mov    ds, ax
  214.         mov    es, ax
  215.         mov    dx, 0            ;Allocate all available RAM.
  216.         MemInit
  217.         mov    MemAvail, cx
  218.         printf
  219.         db    "There are %x paragraphs of memory available."
  220.         db    cr,lf,lf,0
  221.         dd    MemAvail
  222. ;
  223. ;
  224. ;
  225. ;
  226. ;***************************************************************************
  227. ;
  228. ; Test the floating point routines.
  229. ;
  230. ;
  231. ;
  232. ;
  233.         print
  234.         db    "Testing itof:",cr,lf,0
  235. ;
  236.         mov    ax, 1
  237. Testitoflp:    push    ax
  238.         mov    cx, 6
  239.         putisize
  240.         print
  241.         db    " = ",0
  242.         itof
  243.         mov    ax, 209h
  244.         ftoam
  245.         puts
  246.         free
  247.         call    putfpacc
  248.         putcr
  249.         pop    ax
  250.         cmp    ax, 10000
  251.         jg    TestItofDone
  252.         cmp    ax, -10000
  253.         jl    TestItofDone
  254.         mov    cx, ax
  255.         mov    bx, -10
  256.         mul    bx
  257.         add    ax, cx
  258.         jmp       Testitoflp
  259. ;
  260. TestItofDone:   putcr
  261. ;
  262. ;----
  263. ;
  264.         print
  265.         db    "Testing utof:",cr,lf,0
  266. ;
  267.         mov    ax, 1
  268. Testutoflp:    push    ax
  269.         mov    cx, 5
  270.         putusize
  271.         print
  272.         db    " = ",0
  273.         utof
  274.         mov    ax, 209h
  275.         ftoam
  276.         puts
  277.         free
  278.         call    putfpacc
  279.         putcr
  280.         pop    ax
  281.         cmp    ax, 10000
  282.         ja    TestUtofDone
  283.         mov    cx, ax
  284.         mov    bx, 10
  285.         mul    bx
  286.         add    ax, cx
  287.         jmp       Testutoflp
  288. ;
  289. TestUtofDone:   putcr
  290. ;
  291. ;----
  292. ;
  293.         print
  294.         db    "Testing ltof:",cr,lf,0
  295. ;
  296.         mov    ax, 1
  297.         mov    dx, 0
  298. Testltoflp:    push    ax
  299.         push    dx
  300.         mov    cx, 11
  301.         putlsize
  302.         print
  303.         db    " = ",0
  304.         ltof
  305.         mov    ax, 20eh
  306.         ftoam
  307.         puts
  308.         free
  309.         call    putfpacc
  310.         putcr
  311.         pop    dx
  312.         pop    ax
  313.         push    dx
  314.         cmp    ax, 0ca00h        ;low(1e9)
  315.         sbb    dx, 3b9ah        ;high(1e9)
  316.         pop    dx
  317.         ja    TestLtofDone
  318.         shl    ax, 1            ;Multiply by 10.
  319.         rcl    dx, 1
  320.         mov    si, ax
  321.         mov    di, dx
  322.         shl    ax, 1
  323.         rcl    dx, 1
  324.         shl    ax, 1
  325.         rcl    dx, 1
  326.         add    ax, si
  327.         adc    dx, di
  328.         jmp       Testltoflp
  329. ;
  330. TestLtofDone:   putcr
  331. ;
  332.         mov    ax, -1
  333.         mov    dx, -1
  334. Testltoflp2:    push    ax
  335.         push    dx
  336.         mov    cx, 11
  337.         putlsize
  338.         print
  339.         db    " = ",0
  340.         ltof
  341.         mov    ax, 20eh
  342.         ftoam
  343.         puts
  344.         free
  345.         call    putfpacc
  346.         putcr
  347.         pop    dx
  348.         pop    ax
  349.         push    dx
  350.         push    ax
  351.         sub    ax, 3600h        ;low(-1e9)
  352.         sbb    dx, 0c465h        ;high(1e9)
  353.         pop    ax
  354.         pop    dx
  355.         jb    TestLtofDone2
  356.         shl    ax, 1            ;Multiply by 10.
  357.         rcl    dx, 1
  358.         mov    si, ax
  359.         mov    di, dx
  360.         shl    ax, 1
  361.         rcl    dx, 1
  362.         shl    ax, 1
  363.         rcl    dx, 1
  364.         add    ax, si
  365.         adc    dx, di
  366.         jmp       Testltoflp2
  367. ;
  368. TestLtofDone2:  putcr
  369. ;
  370.         print
  371.         db    cr,lf
  372.         db    "Testing ULTOF",cr,lf,0
  373. ;
  374.         mov    ax, 1
  375.         mov    dx, 0
  376. Testultoflp2:    push    ax
  377.         push    dx
  378.         mov    cx, 11
  379.         putulsize
  380.         print
  381.         db    " = ",0
  382.         ultof
  383.         mov    ax, 20eh
  384.         ftoam
  385.         puts
  386.         free
  387.         call    putfpacc
  388.         putcr
  389.         pop    dx
  390.         pop    ax
  391.         push    dx
  392.         push    ax
  393.         sub    ax, 3600h        ;low(-1e9)
  394.         sbb    dx, 0c465h        ;high(1e9)
  395.         pop    ax
  396.         pop    dx
  397.         ja    TestuLtofDone2
  398.         shl    ax, 1            ;Multiply by 10.
  399.         rcl    dx, 1
  400.         mov    si, ax
  401.         mov    di, dx
  402.         shl    ax, 1
  403.         rcl    dx, 1
  404.         shl    ax, 1
  405.         rcl    dx, 1
  406.         add    ax, si
  407.         adc    dx, di
  408.         jmp       Testultoflp2
  409. ;
  410. TestuLtofDone2:  putcr
  411. ;
  412. ;
  413. ;----
  414. ;
  415.         print
  416.         db    "Testing LSFPA:",cr,lf,0
  417. ;
  418.         lesi    SPConst1
  419.         lsfpa
  420.         print
  421.         db    "       1.0 =",0
  422.         mov    ax, 20bh
  423.         ftoam
  424.         puts
  425.         putcr
  426.         free
  427. ;
  428.         lesi    SPConst10
  429.         lsfpa
  430.         print
  431.         db    "    -10.25 =",0
  432.         mov    ax, 20bh
  433.         ftoam
  434.         puts
  435.         putcr
  436.         free
  437. ;
  438.         lesi    SPConst100
  439.         lsfpa
  440.         print
  441.         db    "    100.50 =",0
  442.         mov    ax, 20bh
  443.         ftoam
  444.         puts
  445.         putcr
  446.         free
  447. ;
  448.         lesi    SPConst1000
  449.         lsfpa
  450.         print
  451.         db    "  -1000.75 =",0
  452.         mov    ax, 20bh
  453.         ftoam
  454.         puts
  455.         putcr
  456.         free
  457. ;
  458.         lesi    SPConst10000
  459.         lsfpa
  460.         print
  461.         db    "  10000.22 =",0
  462.         mov    ax, 20bh
  463.         ftoam
  464.         puts
  465.         putcr
  466.         free
  467. ;
  468.         lesi    SPConst100000
  469.         lsfpa
  470.         print
  471.         db    " -10000.44 =",0
  472.         mov    ax, 20bh
  473.         ftoam
  474.         puts
  475.         putcr
  476.         free
  477. ;
  478.         lesi    SPConst1000000
  479.         lsfpa
  480.         print
  481.         db    "1000000.66 =",0
  482.         mov    ax, 20bh
  483.         ftoam
  484.         puts
  485.         print
  486.         db    "  Note: only 6-7 significant digits.",cr,lf,0
  487.         free
  488. ;
  489.         lesi    SPConst123456
  490.         lsfpa
  491.         print
  492.         db    "-123456.88 =",0
  493.         mov    ax, 20bh
  494.         ftoam
  495.         puts
  496.         putcr
  497.         free
  498. ;
  499.         lesi    SPConst65432
  500.         lsfpa
  501.         print
  502.         db    "  65432.11 =",0
  503.         mov    ax, 20bh
  504.         ftoam
  505.         puts
  506.         putcr
  507.         free
  508. ;
  509.         lesi    SPConst9876
  510.         lsfpa
  511.         print
  512.         db    "  -9876.33 =",0
  513.         mov    ax, 20bh
  514.         ftoam
  515.         puts
  516.         putcr
  517.         free
  518. ;
  519.         lesi    SPConst192
  520.         lsfpa
  521.         print
  522.         db    "    192.55 =",0
  523.         mov    ax, 20bh
  524.         ftoam
  525.         puts
  526.         putcr
  527.         free
  528. ;
  529.         lesi    SPConst38
  530.         lsfpa
  531.         print
  532.         db    "    -38.77 =",0
  533.         mov    ax, 20bh
  534.         ftoam
  535.         puts
  536.         putcr
  537.         free
  538. ;
  539.         lesi    SPConst9
  540.         lsfpa
  541.         print
  542.         db    "      9.99 =",0
  543.         mov    ax, 20bh
  544.         ftoam
  545.         puts
  546.         putcr
  547.         putcr
  548.         free
  549. ;
  550. ;
  551. ;----
  552. ;
  553.         print
  554.         db    "Testing SSFPA:",cr,lf,0
  555. ;
  556.         lesi    SPConst1
  557.         lsfpa
  558.         lesi    Temp
  559.         ssfpa
  560.         lefpal
  561.         dt    0.0
  562.         lsfpa
  563.         print
  564.         db    "       1.0 =",0
  565.         mov    ax, 20bh
  566.         ftoam
  567.         puts
  568.         putcr
  569.         free
  570. ;
  571.         lesi    SPConst10
  572.         lsfpa
  573.         lesi    Temp
  574.         ssfpa
  575.         lefpal
  576.         dt    0.0
  577.         lsfpa
  578.         print
  579.         db    "    -10.25 =",0
  580.         mov    ax, 20bh
  581.         ftoam
  582.         puts
  583.         putcr
  584.         free
  585. ;
  586.         lesi    SPConst100
  587.         lsfpa
  588.         lesi    Temp
  589.         ssfpa
  590.         lefpal
  591.         dt    0.0
  592.         lsfpa
  593.         print
  594.         db    "    100.50 =",0
  595.         mov    ax, 20bh
  596.         ftoam
  597.         puts
  598.         putcr
  599.         free
  600. ;
  601.         lesi    SPConst1000
  602.         lsfpa
  603.         lesi    Temp
  604.         ssfpa
  605.         lefpal
  606.         dt    0.0
  607.         lsfpa
  608.         print
  609.         db    "  -1000.75 =",0
  610.         mov    ax, 20bh
  611.         ftoam
  612.         puts
  613.         putcr
  614.         free
  615. ;
  616.         lesi    SPConst10000
  617.         lsfpa
  618.         lesi    Temp
  619.         ssfpa
  620.         lefpal
  621.         dt    0.0
  622.         lsfpa
  623.         print
  624.         db    "  10000.22 =",0
  625.         mov    ax, 20bh
  626.         ftoam
  627.         puts
  628.         putcr
  629.         free
  630. ;
  631.         lesi    SPConst100000
  632.         lsfpa
  633.         lesi    Temp
  634.         ssfpa
  635.         lefpal
  636.         dt    0.0
  637.         lsfpa
  638.         print
  639.         db    " -10000.44 =",0
  640.         mov    ax, 20bh
  641.         ftoam
  642.         puts
  643.         putcr
  644.         free
  645. ;
  646.         lesi    SPConst1000000
  647.         lsfpa
  648.         lesi    Temp
  649.         ssfpa
  650.         lefpal
  651.         dt    0.0
  652.         lsfpa
  653.         print
  654.         db    "1000000.66 =",0
  655.         mov    ax, 20bh
  656.         ftoam
  657.         puts
  658.         print
  659.         db    "  Note: only 6-7 significant digits.",cr,lf,0
  660.         free
  661. ;
  662.         lesi    SPConst123456
  663.         lsfpa
  664.         lesi    Temp
  665.         ssfpa
  666.         lefpal
  667.         dt    0.0
  668.         lsfpa
  669.         print
  670.         db    "-123456.88 =",0
  671.         mov    ax, 20bh
  672.         ftoam
  673.         puts
  674.         putcr
  675.         free
  676. ;
  677.         lesi    SPConst65432
  678.         lsfpa
  679.         lesi    Temp
  680.         ssfpa
  681.         lefpal
  682.         dt    0.0
  683.         lsfpa
  684.         print
  685.         db    "  65432.11 =",0
  686.         mov    ax, 20bh
  687.         ftoam
  688.         puts
  689.         putcr
  690.         free
  691. ;
  692.         lesi    SPConst9876
  693.         lsfpa
  694.         lesi    Temp
  695.         ssfpa
  696.         lefpal
  697.         dt    0.0
  698.         lsfpa
  699.         print
  700.         db    "  -9876.33 =",0
  701.         mov    ax, 20bh
  702.         ftoam
  703.         puts
  704.         putcr
  705.         free
  706. ;
  707.         lesi    SPConst192
  708.         lsfpa
  709.         lesi    Temp
  710.         ssfpa
  711.         lefpal
  712.         dt    0.0
  713.         lsfpa
  714.         print
  715.         db    "    192.55 =",0
  716.         mov    ax, 20bh
  717.         ftoam
  718.         puts
  719.         putcr
  720.         free
  721. ;
  722.         lesi    SPConst38
  723.         lsfpa
  724.         lesi    Temp
  725.         ssfpa
  726.         lefpal
  727.         dt    0.0
  728.         lsfpa
  729.         print
  730.         db    "    -38.77 =",0
  731.         mov    ax, 20bh
  732.         ftoam
  733.         puts
  734.         putcr
  735.         free
  736. ;
  737.         lesi    SPConst9
  738.         lsfpa
  739.         lesi    Temp
  740.         ssfpa
  741.         lefpal
  742.         dt    0.0
  743.         lsfpa
  744.         print
  745.         db    "      9.99 =",0
  746.         mov    ax, 20bh
  747.         ftoam
  748.         puts
  749.         putcr
  750.         putcr
  751.         free
  752. ;
  753. ;
  754. ;----
  755. ;
  756.         print
  757.         db    "Testing LDFPA:",cr,lf,0
  758. ;
  759.         lesi    DPConst1
  760.         ldfpa
  761.         print
  762.         db    "       1.0 =",0
  763.         mov    ax, 20bh
  764.         ftoam
  765.         puts
  766.         putcr
  767.         free
  768. ;
  769.         lesi    DPConst10
  770.         ldfpa
  771.         print
  772.         db    "    -10.25 =",0
  773.         mov    ax, 20bh
  774.         ftoam
  775.         puts
  776.         putcr
  777.         free
  778. ;
  779.         lesi    DPConst100
  780.         ldfpa
  781.         print
  782.         db    "    100.50 =",0
  783.         mov    ax, 20bh
  784.         ftoam
  785.         puts
  786.         putcr
  787.         free
  788. ;
  789.         lesi    DPConst1000
  790.         ldfpa
  791.         print
  792.         db    "  -1000.75 =",0
  793.         mov    ax, 20bh
  794.         ftoam
  795.         puts
  796.         putcr
  797.         free
  798. ;
  799.         lesi    DPConst10000
  800.         ldfpa
  801.         print
  802.         db    "  10000.22 =",0
  803.         mov    ax, 20bh
  804.         ftoam
  805.         puts
  806.         putcr
  807.         free
  808. ;
  809.         lesi    DPConst100000
  810.         ldfpa
  811.         print
  812.         db    " -10000.44 =",0
  813.         mov    ax, 20bh
  814.         ftoam
  815.         puts
  816.         putcr
  817.         free
  818. ;
  819.         lesi    DPConst1000000
  820.         ldfpa
  821.         print
  822.         db    "123456789012345678.66 =",0
  823.         mov    ax, 216h
  824.         ftoam
  825.         puts
  826.         print
  827.         db    "  Note: only 17 sig. digits.",cr,lf,0
  828.         free
  829. ;
  830.         lesi    DPConst123456
  831.         ldfpa
  832.         print
  833.         db    "-123456.88 =",0
  834.         mov    ax, 20bh
  835.         ftoam
  836.         puts
  837.         putcr
  838.         free
  839. ;
  840.         lesi    DPConst65432
  841.         ldfpa
  842.         print
  843.         db    "  65432.11 =",0
  844.         mov    ax, 20bh
  845.         ftoam
  846.         puts
  847.         putcr
  848.         free
  849. ;
  850.         lesi    DPConst9876
  851.         ldfpa
  852.         print
  853.         db    "  -9876.33 =",0
  854.         mov    ax, 20bh
  855.         ftoam
  856.         puts
  857.         putcr
  858.         free
  859. ;
  860.         lesi    DPConst192
  861.         ldfpa
  862.         print
  863.         db    "    192.55 =",0
  864.         mov    ax, 20bh
  865.         ftoam
  866.         puts
  867.         putcr
  868.         free
  869. ;
  870.         lesi    DPConst38
  871.         ldfpa
  872.         print
  873.         db    "    -38.77 =",0
  874.         mov    ax, 20bh
  875.         ftoam
  876.         puts
  877.         putcr
  878.         free
  879. ;
  880.         lesi    DPConst9
  881.         ldfpa
  882.         print
  883.         db    "      9.99 =",0
  884.         mov    ax, 20bh
  885.         ftoam
  886.         puts
  887.         putcr
  888.         putcr
  889.         free
  890. ;
  891. ;
  892. ;----
  893. ;
  894.         print
  895.         db    "Testing SDFPA:",cr,lf,0
  896. ;
  897.         lesi    DPConst1
  898.         ldfpa
  899.         lesi    Temp
  900.         sdfpa
  901.         lefpal
  902.         dt    0.0
  903.         ldfpa
  904.         print
  905.         db    "       1.0 =",0
  906.         mov    ax, 20bh
  907.         ftoam
  908.         puts
  909.         putcr
  910.         free
  911. ;
  912.         lesi    DPConst10
  913.         ldfpa
  914.         lesi    Temp
  915.         sdfpa
  916.         lefpal
  917.         dt    0.0
  918.         ldfpa
  919.         print
  920.         db    "    -10.25 =",0
  921.         mov    ax, 20bh
  922.         ftoam
  923.         puts
  924.         putcr
  925.         free
  926. ;
  927.         lesi    DPConst100
  928.         ldfpa
  929.         lesi    Temp
  930.         sdfpa
  931.         lefpal
  932.         dt    0.0
  933.         ldfpa
  934.         print
  935.         db    "    100.50 =",0
  936.         mov    ax, 20bh
  937.         ftoam
  938.         puts
  939.         putcr
  940.         free
  941. ;
  942.         lesi    DPConst1000
  943.         ldfpa
  944.         lesi    Temp
  945.         sdfpa
  946.         lefpal
  947.         dt    0.0
  948.         ldfpa
  949.         print
  950.         db    "  -1000.75 =",0
  951.         mov    ax, 20bh
  952.         ftoam
  953.         puts
  954.         putcr
  955.         free
  956. ;
  957.         lesi    DPConst10000
  958.         ldfpa
  959.         lesi    Temp
  960.         sdfpa
  961.         lefpal
  962.         dt    0.0
  963.         ldfpa
  964.         print
  965.         db    "  10000.22 =",0
  966.         mov    ax, 20bh
  967.         ftoam
  968.         puts
  969.         putcr
  970.         free
  971. ;
  972.         lesi    DPConst100000
  973.         ldfpa
  974.         lesi    Temp
  975.         sdfpa
  976.         lefpal
  977.         dt    0.0
  978.         ldfpa
  979.         print
  980.         db    " -10000.44 =",0
  981.         mov    ax, 20bh
  982.         ftoam
  983.         puts
  984.         putcr
  985.         free
  986. ;
  987.         lesi    DPConst1000000
  988.         ldfpa
  989.         lesi    Temp
  990.         sdfpa
  991.         lefpal
  992.         dt    0.0
  993.         ldfpa
  994.         print
  995.         db    "123456789012345678.66 =",0
  996.         mov    ax, 216h
  997.         ftoam
  998.         puts
  999.         print
  1000.         db    "  Note: only 17 sig. digits.",cr,lf,0
  1001.         free
  1002. ;
  1003.         lesi    DPConst123456
  1004.         ldfpa
  1005.         lesi    Temp
  1006.         sdfpa
  1007.         lefpal
  1008.         dt    0.0
  1009.         ldfpa
  1010.         print
  1011.         db    "-123456.88 =",0
  1012.         mov    ax, 20bh
  1013.         ftoam
  1014.         puts
  1015.         putcr
  1016.         free
  1017. ;
  1018.         lesi    DPConst65432
  1019.         ldfpa
  1020.         lesi    Temp
  1021.         sdfpa
  1022.         lefpal
  1023.         dt    0.0
  1024.         ldfpa
  1025.         print
  1026.         db    "  65432.11 =",0
  1027.         mov    ax, 20bh
  1028.         ftoam
  1029.         puts
  1030.         putcr
  1031.         free
  1032. ;
  1033.         lesi    DPConst9876
  1034.         ldfpa
  1035.         lesi    Temp
  1036.         sdfpa
  1037.         lefpal
  1038.         dt    0.0
  1039.         ldfpa
  1040.         print
  1041.         db    "  -9876.33 =",0
  1042.         mov    ax, 20bh
  1043.         ftoam
  1044.         puts
  1045.         putcr
  1046.         free
  1047. ;
  1048.         lesi    DPConst192
  1049.         ldfpa
  1050.         lesi    Temp
  1051.         sdfpa
  1052.         lefpal
  1053.         dt    0.0
  1054.         ldfpa
  1055.         print
  1056.         db    "    192.55 =",0
  1057.         mov    ax, 20bh
  1058.         ftoam
  1059.         puts
  1060.         putcr
  1061.         free
  1062. ;
  1063.         lesi    DPConst38
  1064.         ldfpa
  1065.         lesi    Temp
  1066.         sdfpa
  1067.         lefpal
  1068.         dt    0.0
  1069.         ldfpa
  1070.         print
  1071.         db    "    -38.77 =",0
  1072.         mov    ax, 20bh
  1073.         ftoam
  1074.         puts
  1075.         putcr
  1076.         free
  1077. ;
  1078.         lesi    DPConst9
  1079.         ldfpa
  1080.         lesi    Temp
  1081.         sdfpa
  1082.         lefpal
  1083.         dt    0.0
  1084.         ldfpa
  1085.         print
  1086.         db    "      9.99 =",0
  1087.         mov    ax, 20bh
  1088.         ftoam
  1089.         puts
  1090.         putcr
  1091.         putcr
  1092.         free
  1093. ;
  1094. ;
  1095. ;------
  1096. ;
  1097.         print
  1098.         db    "Testing lefpa:",cr,lf,0
  1099. ;
  1100.         lesi    EPConst1
  1101.         lefpa
  1102.         print
  1103.         db    "       1.0 =",0
  1104.         mov    ax, 20bh
  1105.         ftoam
  1106.         puts
  1107.         putcr
  1108.         free
  1109. ;
  1110.         lesi    EPConst10
  1111.         lefpa
  1112.         print
  1113.         db    "    -10.25 =",0
  1114.         mov    ax, 20bh
  1115.         ftoam
  1116.         puts
  1117.         putcr
  1118.         free
  1119. ;
  1120.         lesi    EPConst100
  1121.         lefpa
  1122.         print
  1123.         db    "    100.50 =",0
  1124.         mov    ax, 20bh
  1125.         ftoam
  1126.         puts
  1127.         putcr
  1128.         free
  1129. ;
  1130.         lesi    EPConst1000
  1131.         lefpa
  1132.         print
  1133.         db    "  -1000.75 =",0
  1134.         mov    ax, 20bh
  1135.         ftoam
  1136.         puts
  1137.         putcr
  1138.         free
  1139. ;
  1140.         lesi    EPConst10000
  1141.         lefpa
  1142.         print
  1143.         db    "  10000.22 =",0
  1144.         mov    ax, 20bh
  1145.         ftoam
  1146.         puts
  1147.         putcr
  1148.         free
  1149. ;
  1150.         lesi    EPConst100000
  1151.         lefpa
  1152.         print
  1153.         db    " -10000.44 =",0
  1154.         mov    ax, 20bh
  1155.         ftoam
  1156.         puts
  1157.         putcr
  1158.         free
  1159. ;
  1160.         lesi    EPConst1000000
  1161.         lefpa
  1162.         print
  1163.         db    "123456789012345678901.66 =",0
  1164.         mov    ax, 219h
  1165.         ftoam
  1166.         puts
  1167.         print
  1168.         db    "  Note: only 17 sig. digits.",cr,lf,0
  1169.         free
  1170. ;
  1171.         lesi    EPConst123456
  1172.         lefpa
  1173.         print
  1174.         db    "-123456.88 =",0
  1175.         mov    ax, 20bh
  1176.         ftoam
  1177.         puts
  1178.         putcr
  1179.         free
  1180. ;
  1181.         lesi    EPConst65432
  1182.         lefpa
  1183.         print
  1184.         db    "  65432.11 =",0
  1185.         mov    ax, 20bh
  1186.         ftoam
  1187.         puts
  1188.         putcr
  1189.         free
  1190. ;
  1191.         lesi    EPConst9876
  1192.         lefpa
  1193.         print
  1194.         db    "  -9876.33 =",0
  1195.         mov    ax, 20bh
  1196.         ftoam
  1197.         puts
  1198.         putcr
  1199.         free
  1200. ;
  1201.         lesi    EPConst192
  1202.         lefpa
  1203.         print
  1204.         db    "    192.55 =",0
  1205.         mov    ax, 20bh
  1206.         ftoam
  1207.         puts
  1208.         putcr
  1209.         free
  1210. ;
  1211.         lesi    EPConst38
  1212.         lefpa
  1213.         print
  1214.         db    "    -38.77 =",0
  1215.         mov    ax, 20bh
  1216.         ftoam
  1217.         puts
  1218.         putcr
  1219.         free
  1220. ;
  1221.         lesi    EPConst9
  1222.         lefpa
  1223.         print
  1224.         db    "      9.99 =",0
  1225.         mov    ax, 20bh
  1226.         ftoam
  1227.         puts
  1228.         putcr
  1229.         putcr
  1230.         free
  1231. ;
  1232. ;
  1233. ;------
  1234. ;
  1235.         print
  1236.         db    "Testing sefap:",cr,lf,0
  1237. ;
  1238.         lesi    EPConst1
  1239.         lefpa
  1240.         lesi    Temp
  1241.         sefpa
  1242.         lefpal
  1243.         dt    0.0
  1244.         lefpa
  1245.         print
  1246.         db    "       1.0 =",0
  1247.         mov    ax, 20bh
  1248.         ftoam
  1249.         puts
  1250.         putcr
  1251.         free
  1252. ;
  1253.         lesi    EPConst10
  1254.         lefpa
  1255.         lesi    Temp
  1256.         sefpa
  1257.         lefpal
  1258.         dt    0.0
  1259.         lefpa
  1260.         print
  1261.         db    "    -10.25 =",0
  1262.         mov    ax, 20bh
  1263.         ftoam
  1264.         puts
  1265.         putcr
  1266.         free
  1267. ;
  1268.         lesi    EPConst100
  1269.         lefpa
  1270.         lesi    Temp
  1271.         sefpa
  1272.         lefpal
  1273.         dt    0.0
  1274.         lefpa
  1275.         print
  1276.         db    "    100.50 =",0
  1277.         mov    ax, 20bh
  1278.         ftoam
  1279.         puts
  1280.         putcr
  1281.         free
  1282. ;
  1283.         lesi    EPConst1000
  1284.         lefpa
  1285.         lesi    Temp
  1286.         sefpa
  1287.         lefpal
  1288.         dt    0.0
  1289.         lefpa
  1290.         print
  1291.         db    "  -1000.75 =",0
  1292.         mov    ax, 20bh
  1293.         ftoam
  1294.         puts
  1295.         putcr
  1296.         free
  1297. ;
  1298.         lesi    EPConst10000
  1299.         lefpa
  1300.         lesi    Temp
  1301.         sefpa
  1302.         lefpal
  1303.         dt    0.0
  1304.         lefpa
  1305.         print
  1306.         db    "  10000.22 =",0
  1307.         mov    ax, 20bh
  1308.         ftoam
  1309.         puts
  1310.         putcr
  1311.         free
  1312. ;
  1313.         lesi    EPConst100000
  1314.         lefpa
  1315.         lesi    Temp
  1316.         sefpa
  1317.         lefpal
  1318.         dt    0.0
  1319.         lefpa
  1320.         print
  1321.         db    " -10000.44 =",0
  1322.         mov    ax, 20bh
  1323.         ftoam
  1324.         puts
  1325.         putcr
  1326.         free
  1327. ;
  1328.         lesi    EPConst1000000
  1329.         lefpa
  1330.         lesi    Temp
  1331.         sefpa
  1332.         lefpal
  1333.         dt    0.0
  1334.         lefpa
  1335.         print
  1336.         db    "123456789012345678901.66 =",0
  1337.         mov    ax, 219h
  1338.         ftoam
  1339.         puts
  1340.         print
  1341.         db    "  Note: only 17 sig. digits.",cr,lf,0
  1342.         free
  1343. ;
  1344.         lesi    EPConst123456
  1345.         lefpa
  1346.         lesi    Temp
  1347.         sefpa
  1348.         lefpal
  1349.         dt    0.0
  1350.         lefpa
  1351.         print
  1352.         db    "-123456.88 =",0
  1353.         mov    ax, 20bh
  1354.         ftoam
  1355.         puts
  1356.         putcr
  1357.         free
  1358. ;
  1359.         lesi    EPConst65432
  1360.         lefpa
  1361.         lesi    Temp
  1362.         sefpa
  1363.         lefpal
  1364.         dt    0.0
  1365.         lefpa
  1366.         print
  1367.         db    "  65432.11 =",0
  1368.         mov    ax, 20bh
  1369.         ftoam
  1370.         puts
  1371.         putcr
  1372.         free
  1373. ;
  1374.         lesi    EPConst9876
  1375.         lefpa
  1376.         lesi    Temp
  1377.         sefpa
  1378.         lefpal
  1379.         dt    0.0
  1380.         lefpa
  1381.         print
  1382.         db    "  -9876.33 =",0
  1383.         mov    ax, 20bh
  1384.         ftoam
  1385.         puts
  1386.         putcr
  1387.         free
  1388. ;
  1389.         lesi    EPConst192
  1390.         lefpa
  1391.         lesi    Temp
  1392.         sefpa
  1393.         lefpal
  1394.         dt    0.0
  1395.         lefpa
  1396.         print
  1397.         db    "    192.55 =",0
  1398.         mov    ax, 20bh
  1399.         ftoam
  1400.         puts
  1401.         putcr
  1402.         free
  1403. ;
  1404.         lesi    EPConst38
  1405.         lefpa
  1406.         lesi    Temp
  1407.         sefpa
  1408.         lefpal
  1409.         dt    0.0
  1410.         lefpa
  1411.         print
  1412.         db    "    -38.77 =",0
  1413.         mov    ax, 20bh
  1414.         ftoam
  1415.         puts
  1416.         putcr
  1417.         free
  1418. ;
  1419.         lesi    EPConst9
  1420.         lefpa
  1421.         lesi    Temp
  1422.         sefpa
  1423.         lefpal
  1424.         dt    0.0
  1425.         lefpa
  1426.         print
  1427.         db    "      9.99 =",0
  1428.         mov    ax, 20bh
  1429.         ftoam
  1430.         puts
  1431.         putcr
  1432.         putcr
  1433.         free
  1434. ;
  1435. ;-----
  1436. ;
  1437.         print
  1438.         db    "Testing lefapl:",cr,lf,0
  1439. ;
  1440.         lefpal
  1441.         dt    1.0
  1442.         print
  1443.         db    "       1.0 =",0
  1444.         mov    ax, 20bh
  1445.         ftoam
  1446.         puts
  1447.         putcr
  1448.         free
  1449. ;
  1450.         lefpal
  1451.         dt    -10.25
  1452.         print
  1453.         db    "    -10.25 =",0
  1454.         mov    ax, 20bh
  1455.         ftoam
  1456.         puts
  1457.         putcr
  1458.         free
  1459. ;
  1460.         lefpal
  1461.         dt    100.50
  1462.         print
  1463.         db    "    100.50 =",0
  1464.         mov    ax, 20bh
  1465.         ftoam
  1466.         puts
  1467.         putcr
  1468.         free
  1469. ;
  1470.         lefpal
  1471.         dt    -1000.75
  1472.         print
  1473.         db    "  -1000.75 =",0
  1474.         mov    ax, 20bh
  1475.         ftoam
  1476.         puts
  1477.         putcr
  1478.         free
  1479. ;
  1480.         lefpal
  1481.         dt    10000.22
  1482.         print
  1483.         db    "  10000.22 =",0
  1484.         mov    ax, 20bh
  1485.         ftoam
  1486.         puts
  1487.         putcr
  1488.         free
  1489. ;
  1490.         lefpal
  1491.         dt    -100000.44
  1492.         print
  1493.         db    " -100000.44 =",0
  1494.         mov    ax, 20bh
  1495.         ftoam
  1496.         puts
  1497.         putcr
  1498.         free
  1499. ;
  1500.         lefpal
  1501.         dt    123456789012345678901.66
  1502.         print
  1503.         db    "123456789012345678901.66 =",0
  1504.         mov    ax, 219h
  1505.         ftoam
  1506.         puts
  1507.         print
  1508.         db    "  Note: only 17 sig. digits.",cr,lf,0
  1509.         free
  1510. ;
  1511.         lefpal
  1512.         dt    -123456.88
  1513.         print
  1514.         db    "-123456.88 =",0
  1515.         mov    ax, 20bh
  1516.         ftoam
  1517.         puts
  1518.         putcr
  1519.         free
  1520. ;
  1521.         lefpal
  1522.         dt    65432.11
  1523.         print
  1524.         db    "  65432.11 =",0
  1525.         mov    ax, 20bh
  1526.         ftoam
  1527.         puts
  1528.         putcr
  1529.         free
  1530. ;
  1531.         lefpal
  1532.         dt    -9876.33
  1533.         print
  1534.         db    "  -9876.33 =",0
  1535.         mov    ax, 20bh
  1536.         ftoam
  1537.         puts
  1538.         putcr
  1539.         free
  1540. ;
  1541.         lefpal
  1542.         dt    192.55
  1543.         print
  1544.         db    "    192.55 =",0
  1545.         mov    ax, 20bh
  1546.         ftoam
  1547.         puts
  1548.         putcr
  1549.         free
  1550. ;
  1551.         lefpal
  1552.         dt    -38.77
  1553.         print
  1554.         db    "    -38.77 =",0
  1555.         mov    ax, 20bh
  1556.         ftoam
  1557.         puts
  1558.         putcr
  1559.         free
  1560. ;
  1561.         lefpal
  1562.         dt    9.99
  1563.         print
  1564.         db    "      9.99 =",0
  1565.         mov    ax, 20bh
  1566.         ftoam
  1567.         puts
  1568.         putcr
  1569.         putcr
  1570.         free
  1571. ;
  1572. ;
  1573. ;
  1574. ; Test loading the floating point operand register-
  1575. ;
  1576.         print
  1577.         db    "Testing LSFPO (and XAccOp)",cr,lf,0
  1578. ;
  1579.         lesi    SPConst1
  1580.         lsfpo
  1581.         XAccOp
  1582.         print
  1583.         db    "       1.0 =",0
  1584.         mov    ax, 20bh
  1585.         ftoam
  1586.         puts
  1587.         putcr
  1588.         free
  1589. ;
  1590.         lesi    SPConst10
  1591.         lsfpo
  1592.         XAccOp
  1593.         print
  1594.         db    "    -10.25 =",0
  1595.         mov    ax, 20bh
  1596.         ftoam
  1597.         puts
  1598.         putcr
  1599.         free
  1600. ;
  1601.         lesi    SPConst100
  1602.         lsfpo
  1603.         XAccOp
  1604.         print
  1605.         db    "    100.50 =",0
  1606.         mov    ax, 20bh
  1607.         ftoam
  1608.         puts
  1609.         putcr
  1610.         free
  1611. ;
  1612.         lesi    SPConst1000
  1613.         lsfpo
  1614.         XAccOp
  1615.         print
  1616.         db    "  -1000.75 =",0
  1617.         mov    ax, 20bh
  1618.         ftoam
  1619.         puts
  1620.         putcr
  1621.         free
  1622. ;
  1623.         lesi    SPConst10000
  1624.         lsfpo
  1625.         XAccOp
  1626.         print
  1627.         db    "  10000.22 =",0
  1628.         mov    ax, 20bh
  1629.         ftoam
  1630.         puts
  1631.         putcr
  1632.         free
  1633. ;
  1634.         lesi    SPConst100000
  1635.         lsfpo
  1636.         XAccOp
  1637.         print
  1638.         db    " -10000.44 =",0
  1639.         mov    ax, 20bh
  1640.         ftoam
  1641.         puts
  1642.         putcr
  1643.         free
  1644. ;
  1645.         lesi    SPConst1000000
  1646.         lsfpo
  1647.         XAccOp
  1648.         print
  1649.         db    "1000000.66 =",0
  1650.         mov    ax, 20bh
  1651.         ftoam
  1652.         puts
  1653.         print
  1654.         db    "  Note: only 6-7 significant digits.",cr,lf,0
  1655.         free
  1656. ;
  1657.         lesi    SPConst123456
  1658.         lsfpo
  1659.         XAccOp
  1660.         print
  1661.         db    "-123456.88 =",0
  1662.         mov    ax, 20bh
  1663.         ftoam
  1664.         puts
  1665.         putcr
  1666.         free
  1667. ;
  1668.         lesi    SPConst65432
  1669.         lsfpo
  1670.         XAccOp
  1671.         print
  1672.         db    "  65432.11 =",0
  1673.         mov    ax, 20bh
  1674.         ftoam
  1675.         puts
  1676.         putcr
  1677.         free
  1678. ;
  1679.         lesi    SPConst9876
  1680.         lsfpo
  1681.         XAccOp
  1682.         print
  1683.         db    "  -9876.33 =",0
  1684.         mov    ax, 20bh
  1685.         ftoam
  1686.         puts
  1687.         putcr
  1688.         free
  1689. ;
  1690.         lesi    SPConst192
  1691.         lsfpo
  1692.         XAccOp
  1693.         print
  1694.         db    "    192.55 =",0
  1695.         mov    ax, 20bh
  1696.         ftoam
  1697.         puts
  1698.         putcr
  1699.         free
  1700. ;
  1701.         lesi    SPConst38
  1702.         lsfpo
  1703.         XAccOp
  1704.         print
  1705.         db    "    -38.77 =",0
  1706.         mov    ax, 20bh
  1707.         ftoam
  1708.         puts
  1709.         putcr
  1710.         free
  1711. ;
  1712.         lesi    SPConst9
  1713.         lsfpo
  1714.         XAccOp
  1715.         print
  1716.         db    "      9.99 =",0
  1717.         mov    ax, 20bh
  1718.         ftoam
  1719.         puts
  1720.         putcr
  1721.         putcr
  1722.         free
  1723. ;
  1724. ;----
  1725. ;
  1726.         print
  1727.         db    "Testing LDFPO:",cr,lf,0
  1728. ;
  1729.         lesi    DPConst1
  1730.         ldfpo
  1731.         XAccOp
  1732.         print
  1733.         db    "       1.0 =",0
  1734.         mov    ax, 20bh
  1735.         ftoam
  1736.         puts
  1737.         putcr
  1738.         free
  1739. ;
  1740.         lesi    DPConst10
  1741.         ldfpo
  1742.         XAccOp
  1743.         print
  1744.         db    "    -10.25 =",0
  1745.         mov    ax, 20bh
  1746.         ftoam
  1747.         puts
  1748.         putcr
  1749.         free
  1750. ;
  1751.         lesi    DPConst100
  1752.         ldfpo
  1753.         XAccOp
  1754.         print
  1755.         db    "    100.50 =",0
  1756.         mov    ax, 20bh
  1757.         ftoam
  1758.         puts
  1759.         putcr
  1760.         free
  1761. ;
  1762.         lesi    DPConst1000
  1763.         ldfpo
  1764.         XAccOp
  1765.         print
  1766.         db    "  -1000.75 =",0
  1767.         mov    ax, 20bh
  1768.         ftoam
  1769.         puts
  1770.         putcr
  1771.         free
  1772. ;
  1773.         lesi    DPConst10000
  1774.         ldfpo
  1775.         XAccOp
  1776.         print
  1777.         db    "  10000.22 =",0
  1778.         mov    ax, 20bh
  1779.         ftoam
  1780.         puts
  1781.         putcr
  1782.         free
  1783. ;
  1784.         lesi    DPConst100000
  1785.         ldfpo
  1786.         XAccOp
  1787.         print
  1788.         db    " -10000.44 =",0
  1789.         mov    ax, 20bh
  1790.         ftoam
  1791.         puts
  1792.         putcr
  1793.         free
  1794. ;
  1795.         lesi    DPConst1000000
  1796.         ldfpo
  1797.         XAccOp
  1798.         print
  1799.         db    "123456789012345678.66 =",0
  1800.         mov    ax, 216h
  1801.         ftoam
  1802.         puts
  1803.         print
  1804.         db    "  Note: only 17 sig. digits.",cr,lf,0
  1805.         free
  1806. ;
  1807.         lesi    DPConst123456
  1808.         ldfpo
  1809.         XAccOp
  1810.         print
  1811.         db    "-123456.88 =",0
  1812.         mov    ax, 20bh
  1813.         ftoam
  1814.         puts
  1815.         putcr
  1816.         free
  1817. ;
  1818.         lesi    DPConst65432
  1819.         ldfpo
  1820.         XAccOp
  1821.         print
  1822.         db    "  65432.11 =",0
  1823.         mov    ax, 20bh
  1824.         ftoam
  1825.         puts
  1826.         putcr
  1827.         free
  1828. ;
  1829.         lesi    DPConst9876
  1830.         ldfpo
  1831.         XAccOp
  1832.         print
  1833.         db    "  -9876.33 =",0
  1834.         mov    ax, 20bh
  1835.         ftoam
  1836.         puts
  1837.         putcr
  1838.         free
  1839. ;
  1840.         lesi    DPConst192
  1841.         ldfpo
  1842.         XAccOp
  1843.         print
  1844.         db    "    192.55 =",0
  1845.         mov    ax, 20bh
  1846.         ftoam
  1847.         puts
  1848.         putcr
  1849.         free
  1850. ;
  1851.         lesi    DPConst38
  1852.         ldfpo
  1853.         XAccOp
  1854.         print
  1855.         db    "    -38.77 =",0
  1856.         mov    ax, 20bh
  1857.         ftoam
  1858.         puts
  1859.         putcr
  1860.         free
  1861. ;
  1862.         lesi    DPConst9
  1863.         ldfpo
  1864.         XAccOp
  1865.         print
  1866.         db    "      9.99 =",0
  1867.         mov    ax, 20bh
  1868.         ftoam
  1869.         puts
  1870.         putcr
  1871.         putcr
  1872.         free
  1873. ;
  1874. ;
  1875. ;------
  1876. ;
  1877.         print
  1878.         db    "Testing LEFPO:",cr,lf,0
  1879. ;
  1880.         lesi    EPConst1
  1881.         lefpo
  1882.         XAccOp
  1883.         print
  1884.         db    "       1.0 =",0
  1885.         mov    ax, 20bh
  1886.         ftoam
  1887.         puts
  1888.         putcr
  1889.         free
  1890. ;
  1891.         lesi    EPConst10
  1892.         lefpo
  1893.         XAccOp
  1894.         print
  1895.         db    "    -10.25 =",0
  1896.         mov    ax, 20bh
  1897.         ftoam
  1898.         puts
  1899.         putcr
  1900.         free
  1901. ;
  1902.         lesi    EPConst100
  1903.         lefpo
  1904.         XAccOp
  1905.         print
  1906.         db    "    100.50 =",0
  1907.         mov    ax, 20bh
  1908.         ftoam
  1909.         puts
  1910.         putcr
  1911.         free
  1912. ;
  1913.         lesi    EPConst1000
  1914.         lefpo
  1915.         XAccOp
  1916.         print
  1917.         db    "  -1000.75 =",0
  1918.         mov    ax, 20bh
  1919.         ftoam
  1920.         puts
  1921.         putcr
  1922.         free
  1923. ;
  1924.         lesi    EPConst10000
  1925.         lefpo
  1926.         XAccOp
  1927.         print
  1928.         db    "  10000.22 =",0
  1929.         mov    ax, 20bh
  1930.         ftoam
  1931.         puts
  1932.         putcr
  1933.         free
  1934. ;
  1935.         lesi    EPConst100000
  1936.         lefpo
  1937.         XAccOp
  1938.         print
  1939.         db    " -10000.44 =",0
  1940.         mov    ax, 20bh
  1941.         ftoam
  1942.         puts
  1943.         putcr
  1944.         free
  1945. ;
  1946.         lesi    EPConst1000000
  1947.         lefpo
  1948.         XAccOp
  1949.         print
  1950.         db    "123456789012345678901.66 =",0
  1951.         mov    ax, 219h
  1952.         ftoam
  1953.         puts
  1954.         print
  1955.         db    "  Note: only 17 sig. digits.",cr,lf,0
  1956.         free
  1957. ;
  1958.         lesi    EPConst123456
  1959.         lefpo
  1960.         XAccOp
  1961.         print
  1962.         db    "-123456.88 =",0
  1963.         mov    ax, 20bh
  1964.         ftoam
  1965.         puts
  1966.         putcr
  1967.         free
  1968. ;
  1969.         lesi    EPConst65432
  1970.         lefpo
  1971.         XAccOp
  1972.         print
  1973.         db    "  65432.11 =",0
  1974.         mov    ax, 20bh
  1975.         ftoam
  1976.         puts
  1977.         putcr
  1978.         free
  1979. ;
  1980.         lesi    EPConst9876
  1981.         lefpo
  1982.         XAccOp
  1983.         print
  1984.         db    "  -9876.33 =",0
  1985.         mov    ax, 20bh
  1986.         ftoam
  1987.         puts
  1988.         putcr
  1989.         free
  1990. ;
  1991.         lesi    EPConst192
  1992.         lefpo
  1993.         XAccOp
  1994.         print
  1995.         db    "    192.55 =",0
  1996.         mov    ax, 20bh
  1997.         ftoam
  1998.         puts
  1999.         putcr
  2000.         free
  2001. ;
  2002.         lesi    EPConst38
  2003.         lefpo
  2004.         XAccOp
  2005.         print
  2006.         db    "    -38.77 =",0
  2007.         mov    ax, 20bh
  2008.         ftoam
  2009.         puts
  2010.         putcr
  2011.         free
  2012. ;
  2013.         lesi    EPConst9
  2014.         lefpo
  2015.         XAccOp
  2016.         print
  2017.         db    "      9.99 =",0
  2018.         mov    ax, 20bh
  2019.         ftoam
  2020.         puts
  2021.         putcr
  2022.         putcr
  2023.         free
  2024. ;
  2025. ;
  2026. ;-----
  2027. ;
  2028.         print
  2029.         db    "Testing LEFPOL:",cr,lf,0
  2030. ;
  2031.         lefpol
  2032.         dt    1.0
  2033.         XAccOp
  2034.         print
  2035.         db    "       1.0 =",0
  2036.         mov    ax, 20bh
  2037.         ftoam
  2038.         puts
  2039.         putcr
  2040.         free
  2041. ;
  2042.         lefpol
  2043.         dt    -10.25
  2044.         XAccOp
  2045.         print
  2046.         db    "    -10.25 =",0
  2047.         mov    ax, 20bh
  2048.         ftoam
  2049.         puts
  2050.         putcr
  2051.         free
  2052. ;
  2053.         lefpol
  2054.         dt    100.50
  2055.         XAccOp
  2056.         print
  2057.         db    "    100.50 =",0
  2058.         mov    ax, 20bh
  2059.         ftoam
  2060.         puts
  2061.         putcr
  2062.         free
  2063. ;
  2064.         lefpol
  2065.         dt    -1000.75
  2066.         XAccOp
  2067.         print
  2068.         db    "  -1000.75 =",0
  2069.         mov    ax, 20bh
  2070.         ftoam
  2071.         puts
  2072.         putcr
  2073.         free
  2074. ;
  2075.         lefpol
  2076.         dt    10000.22
  2077.         XAccOp
  2078.         print
  2079.         db    "  10000.22 =",0
  2080.         mov    ax, 20bh
  2081.         ftoam
  2082.         puts
  2083.         putcr
  2084.         free
  2085. ;
  2086.         lefpol
  2087.         dt    -100000.44
  2088.         XAccOp
  2089.         print
  2090.         db    " -100000.44 =",0
  2091.         mov    ax, 20bh
  2092.         ftoam
  2093.         puts
  2094.         putcr
  2095.         free
  2096. ;
  2097.         lefpol
  2098.         dt    123456789012345678901.66
  2099.         XAccOp
  2100.         print
  2101.         db    "123456789012345678901.66 =",0
  2102.         mov    ax, 219h
  2103.         ftoam
  2104.         puts
  2105.         print
  2106.         db    "  Note: only 17 sig. digits.",cr,lf,0
  2107.         free
  2108. ;
  2109.         lefpol
  2110.         dt    -123456.88
  2111.         XAccOp
  2112.         print
  2113.         db    "-123456.88 =",0
  2114.         mov    ax, 20bh
  2115.         ftoam
  2116.         puts
  2117.         putcr
  2118.         free
  2119. ;
  2120.         lefpol
  2121.         dt    65432.11
  2122.         XAccOp
  2123.         print
  2124.         db    "  65432.11 =",0
  2125.         mov    ax, 20bh
  2126.         ftoam
  2127.         puts
  2128.         putcr
  2129.         free
  2130. ;
  2131.         lefpol
  2132.         dt    -9876.33
  2133.         XAccOp
  2134.         print
  2135.         db    "  -9876.33 =",0
  2136.         mov    ax, 20bh
  2137.         ftoam
  2138.         puts
  2139.         putcr
  2140.         free
  2141. ;
  2142.         lefpol
  2143.         dt    192.55
  2144.         XAccOp
  2145.         print
  2146.         db    "    192.55 =",0
  2147.         mov    ax, 20bh
  2148.         ftoam
  2149.         puts
  2150.         putcr
  2151.         free
  2152. ;
  2153.         lefpol
  2154.         dt    -38.77
  2155.         XAccOp
  2156.         print
  2157.         db    "    -38.77 =",0
  2158.         mov    ax, 20bh
  2159.         ftoam
  2160.         puts
  2161.         putcr
  2162.         free
  2163. ;
  2164.         lefpol
  2165.         dt    9.99
  2166.         XAccOp
  2167.         print
  2168.         db    "      9.99 =",0
  2169.         mov    ax, 20bh
  2170.         ftoam
  2171.         puts
  2172.         putcr
  2173.         putcr
  2174.         free
  2175. ;
  2176. ;
  2177. ;-----
  2178. ;
  2179. ;
  2180. ;
  2181. ;
  2182. ;
  2183. ; Test the arithmetic operations:
  2184. ;
  2185.         print
  2186.         db    "Testing addition",cr,lf,0
  2187. ;
  2188.         print
  2189.         db    "2.0 = ",0
  2190.         lefpal
  2191.         dt    1.9999999999999999999
  2192.         lefpol
  2193.         dt    0.0000000000000000001
  2194.         fpadd
  2195.         mov    ax, 1418h
  2196.         ftoam
  2197.         puts
  2198.         free
  2199.         call    PutFPAcc
  2200.         putcr
  2201. ;
  2202.         print
  2203.         db    "2.0 = ",0
  2204.         lefpal
  2205.         dt    1.999999999999999999
  2206.         lefpol
  2207.         dt    0.000000000000000001
  2208.         fpadd
  2209.         mov    ax, 1418h
  2210.         ftoam
  2211.         puts
  2212.         call    PutFPAcc
  2213.         putcr
  2214. ;
  2215.         print
  2216.         db    "2.0 = ",0
  2217.         lefpal
  2218.         dt    1.99999999999999999
  2219.         lefpol
  2220.         dt    0.00000000000000001
  2221.         fpadd
  2222.         mov    ax, 20bh
  2223.         mov    ax, 1418h
  2224.         ftoam
  2225.         puts
  2226.         free
  2227.         call    PutFPAcc
  2228.         putcr
  2229. ;
  2230.         print
  2231.         db    "2.0 = ",0
  2232.         lefpal
  2233.         dt    1.9999999999999999
  2234.         lefpol
  2235.         dt    0.0000000000000001
  2236.         fpadd
  2237.         mov    ax, 1418h
  2238.         ftoam
  2239.         puts
  2240.         free
  2241.         call    PutFPAcc
  2242.         putcr
  2243. ;
  2244.         print
  2245.         db    "2.0 = ",0
  2246.         lefpal
  2247.         dt    1.999999999999999
  2248.         lefpol
  2249.         dt    0.000000000000001
  2250.         fpadd
  2251.         mov    ax, 1418h
  2252.         ftoam
  2253.         puts
  2254.         free
  2255.         call    PutFPAcc
  2256.         putcr
  2257. ;
  2258.         print
  2259.         db    "2.0 = ",0
  2260.         lefpal
  2261.         dt    1.99999999999999
  2262.         lefpol
  2263.         dt    0.00000000000001
  2264.         fpadd
  2265.         mov    ax, 1418h
  2266.         ftoam
  2267.         puts
  2268.         free
  2269.         call    PutFPAcc
  2270.         putcr
  2271. ;
  2272.         print
  2273.         db    "2.0 = ",0
  2274.         lefpal
  2275.         dt    1.9999999999999
  2276.         lefpol
  2277.         dt    0.0000000000001
  2278.         fpadd
  2279.         mov    ax, 1418h
  2280.         ftoam
  2281.         puts
  2282.         free
  2283.         call    PutFPAcc
  2284.         putcr
  2285. ;
  2286.         print
  2287.         db    "2.0 = ",0
  2288.         lefpal
  2289.         dt    1.999999999999
  2290.         lefpol
  2291.         dt    0.000000000001
  2292.         fpadd
  2293.         mov    ax, 1418h
  2294.         ftoam
  2295.         puts
  2296.         free
  2297.         call    PutFPAcc
  2298.         putcr
  2299. ;
  2300.         print
  2301.         db    "2.0 = ",0
  2302.         lefpal
  2303.         dt    1.99999999999
  2304.         lefpol
  2305.         dt    0.00000000001
  2306.         fpadd
  2307.         mov    ax, 1418h
  2308.         ftoam
  2309.         puts
  2310.         free
  2311.         call    PutFPAcc
  2312.         putcr
  2313. ;
  2314.         print
  2315.         db    "2.0 = ",0
  2316.         lefpal
  2317.         dt    1.9999999999
  2318.         lefpol
  2319.         dt    0.0000000001
  2320.         fpadd
  2321.         mov    ax, 1418h
  2322.         ftoam
  2323.         puts
  2324.         free
  2325.         call    PutFPAcc
  2326.         putcr
  2327. ;
  2328.         print
  2329.         db    "2.0 = ",0
  2330.         lefpal
  2331.         dt    1.999999999
  2332.         lefpol
  2333.         dt    0.000000001
  2334.         fpadd
  2335.         mov    ax, 1418h
  2336.         ftoam
  2337.         puts
  2338.         free
  2339.         call    PutFPAcc
  2340.         putcr
  2341. ;
  2342.         print
  2343.         db    "2.0 = ",0
  2344.         lefpal
  2345.         dt    1.99999999
  2346.         lefpol
  2347.         dt    0.00000001
  2348.         fpadd
  2349.         mov    ax, 1418h
  2350.         ftoam
  2351.         puts
  2352.         free
  2353.         call    PutFPAcc
  2354.         putcr
  2355. ;
  2356.         print
  2357.         db    "2.0 = ",0
  2358.         lefpal
  2359.         dt    1.9999999
  2360.         lefpol
  2361.         dt    0.0000001
  2362.         fpadd
  2363.         mov    ax, 1418h
  2364.         ftoam
  2365.         puts
  2366.         free
  2367.         call    PutFPAcc
  2368.         putcr
  2369. ;
  2370.         print
  2371.         db    "2.0 = ",0
  2372.         lefpal
  2373.         dt    1.999999
  2374.         lefpol
  2375.         dt    0.000001
  2376.         fpadd
  2377.         mov    ax, 1418h
  2378.         ftoam
  2379.         puts
  2380.         free
  2381.         call    PutFPAcc
  2382.         putcr
  2383. ;
  2384.         print
  2385.         db    "2.0 = ",0
  2386.         lefpal
  2387.         dt    1.99999
  2388.         lefpol
  2389.         dt    0.00001
  2390.         fpadd
  2391.         mov    ax, 1418h
  2392.         ftoam
  2393.         puts
  2394.         free
  2395.         call    PutFPAcc
  2396.         putcr
  2397. ;
  2398.         print
  2399.         db    "2.0 = ",0
  2400.         lefpal
  2401.         dt    1.9999
  2402.         lefpol
  2403.         dt    0.0001
  2404.         fpadd
  2405.         mov    ax, 1418h
  2406.         ftoam
  2407.         puts
  2408.         free
  2409.         call    PutFPAcc
  2410.         putcr
  2411. ;
  2412.         print
  2413.         db    "2.0 = ",0
  2414.         lefpal
  2415.         dt    1.999
  2416.         lefpol
  2417.         dt    0.001
  2418.         fpadd
  2419.         mov    ax, 1418h
  2420.         ftoam
  2421.         puts
  2422.         free
  2423.         call    PutFPAcc
  2424.         putcr
  2425. ;
  2426.         print
  2427.         db    "2.0 = ",0
  2428.         lefpal
  2429.         dt    1.99
  2430.         lefpol
  2431.         dt    0.01
  2432.         fpadd
  2433.         mov    ax, 1418h
  2434.         ftoam
  2435.         puts
  2436.         free
  2437.         call    PutFPAcc
  2438.         putcr
  2439. ;
  2440.         print
  2441.         db    "2.0 = ",0
  2442.         lefpal
  2443.         dt    1.9
  2444.         lefpol
  2445.         dt    0.1
  2446.         fpadd
  2447.         mov    ax, 1418h
  2448.         ftoam
  2449.         puts
  2450.         free
  2451.         call    PutFPAcc
  2452.         putcr
  2453.         putcr
  2454. ;
  2455. ;---------
  2456. ;
  2457.         print
  2458.         db    "More addition:",cr,lf,lf,0
  2459.         print
  2460.         db    "-2.0 = ",0
  2461.         lefpal
  2462.         dt    -1.9999999999999999999
  2463.         lefpol
  2464.         dt    -0.0000000000000000001
  2465.         fpadd
  2466.         mov    ax, 1418h
  2467.         ftoam
  2468.         puts
  2469.         free
  2470.         call    PutFPAcc
  2471.         putcr
  2472. ;
  2473.         print
  2474.         db    "-2.0 = ",0
  2475.         lefpal
  2476.         dt    -1.999999999999999999
  2477.         lefpol
  2478.         dt    -0.000000000000000001
  2479.         fpadd
  2480.         mov    ax, 1418h
  2481.         ftoam
  2482.         puts
  2483.         free
  2484.         call    PutFPAcc
  2485.         putcr
  2486. ;
  2487.         print
  2488.         db    "-2.0 = ",0
  2489.         lefpal
  2490.         dt    -1.99999999999999999
  2491.         lefpol
  2492.         dt    -0.00000000000000001
  2493.         fpadd
  2494.         mov    ax, 20bh
  2495.         mov    ax, 1418h
  2496.         ftoam
  2497.         puts
  2498.         free
  2499.         call    PutFPAcc
  2500.         putcr
  2501. ;
  2502.         print
  2503.         db    "-2.0 = ",0
  2504.         lefpal
  2505.         dt    -1.9999999999999999
  2506.         lefpol
  2507.         dt    -0.0000000000000001
  2508.         fpadd
  2509.         mov    ax, 1418h
  2510.         ftoam
  2511.         puts
  2512.         free
  2513.         call    PutFPAcc
  2514.         putcr
  2515. ;
  2516.         print
  2517.         db    "-2.0 = ",0
  2518.         lefpal
  2519.         dt    -1.999999999999999
  2520.         lefpol
  2521.         dt    -0.000000000000001
  2522.         fpadd
  2523.         mov    ax, 1418h
  2524.         ftoam
  2525.         puts
  2526.         free
  2527.         call    PutFPAcc
  2528.         putcr
  2529. ;
  2530.         print
  2531.         db    "-2.0 = ",0
  2532.         lefpal
  2533.         dt    -1.99999999999999
  2534.         lefpol
  2535.         dt    -0.00000000000001
  2536.         fpadd
  2537.         mov    ax, 1418h
  2538.         ftoam
  2539.         puts
  2540.         free
  2541.         call    PutFPAcc
  2542.         putcr
  2543. ;
  2544.         print
  2545.         db    "-2.0 = ",0
  2546.         lefpal
  2547.         dt    -1.9999999999999
  2548.         lefpol
  2549.         dt    -0.0000000000001
  2550.         fpadd
  2551.         mov    ax, 1418h
  2552.         ftoam
  2553.         puts
  2554.         free
  2555.         call    PutFPAcc
  2556.         putcr
  2557. ;
  2558.         print
  2559.         db    "-2.0 = ",0
  2560.         lefpal
  2561.         dt    -1.999999999999
  2562.         lefpol
  2563.         dt    -0.000000000001
  2564.         fpadd
  2565.         mov    ax, 1418h
  2566.         ftoam
  2567.         puts
  2568.         free
  2569.         call    PutFPAcc
  2570.         putcr
  2571. ;
  2572.         print
  2573.         db    "-2.0 = ",0
  2574.         lefpal
  2575.         dt    -1.99999999999
  2576.         lefpol
  2577.         dt    -0.00000000001
  2578.         fpadd
  2579.         mov    ax, 1418h
  2580.         ftoam
  2581.         puts
  2582.         free
  2583.         call    PutFPAcc
  2584.         putcr
  2585. ;
  2586.         print
  2587.         db    "-2.0 = ",0
  2588.         lefpal
  2589.         dt    -1.9999999999
  2590.         lefpol
  2591.         dt    -0.0000000001
  2592.         fpadd
  2593.         mov    ax, 1418h
  2594.         ftoam
  2595.         puts
  2596.         free
  2597.         call    PutFPAcc
  2598.         putcr
  2599. ;
  2600.         print
  2601.         db    "-2.0 = ",0
  2602.         lefpal
  2603.         dt    -1.999999999
  2604.         lefpol
  2605.         dt    -0.000000001
  2606.         fpadd
  2607.         mov    ax, 1418h
  2608.         ftoam
  2609.         puts
  2610.         free
  2611.         call    PutFPAcc
  2612.         putcr
  2613. ;
  2614.         print
  2615.         db    "-2.0 = ",0
  2616.         lefpal
  2617.         dt    -1.99999999
  2618.         lefpol
  2619.         dt    -0.00000001
  2620.         fpadd
  2621.         mov    ax, 1418h
  2622.         ftoam
  2623.         puts
  2624.         free
  2625.         call    PutFPAcc
  2626.         putcr
  2627. ;
  2628.         print
  2629.         db    "-2.0 = ",0
  2630.         lefpal
  2631.         dt    -1.9999999
  2632.         lefpol
  2633.         dt    -0.0000001
  2634.         fpadd
  2635.         mov    ax, 1418h
  2636.         ftoam
  2637.         puts
  2638.         free
  2639.         call    PutFPAcc
  2640.         putcr
  2641. ;
  2642.         print
  2643.         db    "-2.0 = ",0
  2644.         lefpal
  2645.         dt    -1.999999
  2646.         lefpol
  2647.         dt    -0.000001
  2648.         fpadd
  2649.         mov    ax, 1418h
  2650.         ftoam
  2651.         puts
  2652.         free
  2653.         call    PutFPAcc
  2654.         putcr
  2655. ;
  2656.         print
  2657.         db    "-2.0 = ",0
  2658.         lefpal
  2659.         dt    -1.99999
  2660.         lefpol
  2661.         dt    -0.00001
  2662.         fpadd
  2663.         mov    ax, 1418h
  2664.         ftoam
  2665.         puts
  2666.         free
  2667.         call    PutFPAcc
  2668.         putcr
  2669. ;
  2670.         print
  2671.         db    "-2.0 = ",0
  2672.         lefpal
  2673.         dt    -1.9999
  2674.         lefpol
  2675.         dt    -0.0001
  2676.         fpadd
  2677.         mov    ax, 1418h
  2678.         ftoam
  2679.         puts
  2680.         free
  2681.         call    PutFPAcc
  2682.         putcr
  2683. ;
  2684.         print
  2685.         db    "-2.0 = ",0
  2686.         lefpal
  2687.         dt    -1.999
  2688.         lefpol
  2689.         dt    -0.001
  2690.         fpadd
  2691.         mov    ax, 1418h
  2692.         ftoam
  2693.         puts
  2694.         free
  2695.         call    PutFPAcc
  2696.         putcr
  2697. ;
  2698.         print
  2699.         db    "-2.0 = ",0
  2700.         lefpal
  2701.         dt    -1.99
  2702.         lefpol
  2703.         dt    -0.01
  2704.         fpadd
  2705.         mov    ax, 1418h
  2706.         ftoam
  2707.         puts
  2708.         free
  2709.         call    PutFPAcc
  2710.         putcr
  2711. ;
  2712.         print
  2713.         db    "-2.0 = ",0
  2714.         lefpal
  2715.         dt    -1.9
  2716.         lefpol
  2717.         dt    -0.1
  2718.         fpadd
  2719.         mov    ax, 1418h
  2720.         ftoam
  2721.         puts
  2722.         free
  2723.         call    PutFPAcc
  2724.         putcr
  2725.         putcr
  2726. ;
  2727. ;----
  2728. ;
  2729.         print
  2730.         db    "Yet more addition:",cr,lf,lf,0
  2731.         print
  2732.         db    "2.0 = ",0
  2733.         lefpal
  2734.         dt     2.0000000000000000001
  2735.         lefpol
  2736.         dt    -0.0000000000000000001
  2737.         fpadd
  2738.         mov    ax, 1418h
  2739.         ftoam
  2740.         puts
  2741.         free
  2742.         call    PutFPAcc
  2743.         putcr
  2744. ;
  2745.         print
  2746.         db    "2.0 = ",0
  2747.         lefpal
  2748.         dt     2.000000000000000001
  2749.         lefpol
  2750.         dt    -0.000000000000000001
  2751.         fpadd
  2752.         mov    ax, 1418h
  2753.         ftoam
  2754.         puts
  2755.         free
  2756.         call    PutFPAcc
  2757.         putcr
  2758. ;
  2759.         print
  2760.         db    "2.0 = ",0
  2761.         lefpal
  2762.         dt     2.00000000000000001
  2763.         lefpol
  2764.         dt    -0.00000000000000001
  2765.         fpadd
  2766.         mov    ax, 1418h
  2767.         ftoam
  2768.         puts
  2769.         free
  2770.         call    PutFPAcc
  2771.         putcr
  2772. ;
  2773.         print
  2774.         db    "2.0 = ",0
  2775.         lefpal
  2776.         dt     2.0000000000000001
  2777.         lefpol
  2778.         dt    -0.0000000000000001
  2779.         fpadd
  2780.         mov    ax, 1418h
  2781.         ftoam
  2782.         puts
  2783.         free
  2784.         call    PutFPAcc
  2785.         putcr
  2786. ;
  2787.         print
  2788.         db    "2.0 = ",0
  2789.         lefpal
  2790.         dt     2.000000000000001
  2791.         lefpol
  2792.         dt    -0.000000000000001
  2793.         fpadd
  2794.         mov    ax, 1418h
  2795.         ftoam
  2796.         puts
  2797.         free
  2798.         call    PutFPAcc
  2799.         putcr
  2800. ;
  2801.         print
  2802.         db    "2.0 = ",0
  2803.         lefpal
  2804.         dt     2.00000000000001
  2805.         lefpol
  2806.         dt    -0.00000000000001
  2807.         fpadd
  2808.         mov    ax, 1418h
  2809.         ftoam
  2810.         puts
  2811.         free
  2812.         call    PutFPAcc
  2813.         putcr
  2814. ;
  2815.         print
  2816.         db    "2.0 = ",0
  2817.         lefpal
  2818.         dt     2.0000000000001
  2819.         lefpol
  2820.         dt    -0.0000000000001
  2821.         fpadd
  2822.         mov    ax, 1418h
  2823.         ftoam
  2824.         puts
  2825.         free
  2826.         call    PutFPAcc
  2827.         putcr
  2828. ;
  2829.         print
  2830.         db    "2.0 = ",0
  2831.         lefpal
  2832.         dt     2.000000000001
  2833.         lefpol
  2834.         dt    -0.000000000001
  2835.         fpadd
  2836.         mov    ax, 1418h
  2837.         ftoam
  2838.         puts
  2839.         free
  2840.         call    PutFPAcc
  2841.         putcr
  2842. ;
  2843.         print
  2844.         db    "2.0 = ",0
  2845.         lefpal
  2846.         dt     2.00000000001
  2847.         lefpol
  2848.         dt    -0.00000000001
  2849.         fpadd
  2850.         mov    ax, 1418h
  2851.         ftoam
  2852.         puts
  2853.         free
  2854.         call    PutFPAcc
  2855.         putcr
  2856. ;
  2857.         print
  2858.         db    "2.0 = ",0
  2859.         lefpal
  2860.         dt       2.0000000001
  2861.         lefpol
  2862.         dt    -0.0000000001
  2863.         fpadd
  2864.         mov    ax, 1418h
  2865.         ftoam
  2866.         puts
  2867.         free
  2868.         call    PutFPAcc
  2869.         putcr
  2870. ;
  2871.         print
  2872.         db    "2.0 = ",0
  2873.         lefpal
  2874.         dt     2.000000001
  2875.         lefpol
  2876.         dt    -0.000000001
  2877.         fpadd
  2878.         mov    ax, 1418h
  2879.         ftoam
  2880.         puts
  2881.         free
  2882.         call    PutFPAcc
  2883.         putcr
  2884. ;
  2885.         print
  2886.         db    "2.0 = ",0
  2887.         lefpal
  2888.         dt     2.00000001
  2889.         lefpol
  2890.         dt    -0.00000001
  2891.         fpadd
  2892.         mov    ax, 1418h
  2893.         ftoam
  2894.         puts
  2895.         free
  2896.         call    PutFPAcc
  2897.         putcr
  2898. ;
  2899.         print
  2900.         db    "2.0 = ",0
  2901.         lefpal
  2902.         dt     2.0000001
  2903.         lefpol
  2904.         dt    -0.0000001
  2905.         fpadd
  2906.         mov    ax, 1418h
  2907.         ftoam
  2908.         puts
  2909.         free
  2910.         call    PutFPAcc
  2911.         putcr
  2912. ;
  2913.         print
  2914.         db    "2.0 = ",0
  2915.         lefpal
  2916.         dt     2.000001
  2917.         lefpol
  2918.         dt    -0.000001
  2919.         fpadd
  2920.         mov    ax, 1418h
  2921.         ftoam
  2922.         puts
  2923.         free
  2924.         call    PutFPAcc
  2925.         putcr
  2926. ;
  2927.         print
  2928.         db    "2.0 = ",0
  2929.         lefpal
  2930.         dt     2.00001
  2931.         lefpol
  2932.         dt    -0.00001
  2933.         fpadd
  2934.         mov    ax, 1418h
  2935.         ftoam
  2936.         puts
  2937.         free
  2938.         call    PutFPAcc
  2939.         putcr
  2940. ;
  2941.         print
  2942.         db    "2.0 = ",0
  2943.         lefpal
  2944.         dt     2.0001
  2945.         lefpol
  2946.         dt    -0.0001
  2947.         fpadd
  2948.         mov    ax, 1418h
  2949.         ftoam
  2950.         puts
  2951.         free
  2952.         call    PutFPAcc
  2953.         putcr
  2954. ;
  2955.         print
  2956.         db    "2.0 = ",0
  2957.         lefpal
  2958.         dt     2.001
  2959.         lefpol
  2960.         dt    -0.001
  2961.         fpadd
  2962.         mov    ax, 1418h
  2963.         ftoam
  2964.         puts
  2965.         free
  2966.         call    PutFPAcc
  2967.         putcr
  2968. ;
  2969.         print
  2970.         db    "2.0 = ",0
  2971.         lefpal
  2972.         dt     2.01
  2973.         lefpol
  2974.         dt    -0.01
  2975.         fpadd
  2976.         mov    ax, 1418h
  2977.         ftoam
  2978.         puts
  2979.         free
  2980.         call    PutFPAcc
  2981.         putcr
  2982. ;
  2983.         print
  2984.         db    "2.0 = ",0
  2985.         lefpal
  2986.         dt     2.1
  2987.         lefpol
  2988.         dt    -0.1
  2989.         fpadd
  2990.         mov    ax, 1418h
  2991.         ftoam
  2992.         puts
  2993.         free
  2994.         call    PutFPAcc
  2995.         putcr
  2996.         putcr
  2997. ;
  2998. ;-----
  2999. ;
  3000.         print
  3001.         db    "Simple subtraction test (sub is same as add)"
  3002.         db    cr,lf,lf,0
  3003. ;
  3004.         print
  3005.         db    "2.9.. - 1.9.. = ",0
  3006.         lefpal
  3007.         dt    2.99999999999999999
  3008.         lefpol
  3009.         dt    1.99999999999999999
  3010.         fpsub
  3011.         mov    ax, 1418h
  3012.         ftoam
  3013.         puts
  3014.         free
  3015.         call    PutFPAcc
  3016.         putcr
  3017.         print
  3018.         db    "1.9.. - 2.9.. = ",0
  3019.         lefpal
  3020.         dt    1.99999999999999999
  3021.         lefpol
  3022.         dt    2.99999999999999999
  3023.         fpsub
  3024.         mov    ax, 1418h
  3025.         ftoam
  3026.         puts
  3027.         free
  3028.         call    PutFPAcc
  3029.         putcr
  3030.         putcr
  3031. ;
  3032. ;----
  3033. ;
  3034.         print
  3035.         db    "Testing Multiply...",cr,lf,lf,0
  3036. ;
  3037.         mov    cx, 20
  3038.         lefpal
  3039.         dt    1.0
  3040. MultLoop:    lefpol
  3041.         dt    -10.0
  3042.         fpmul
  3043.         mov    ax, 24h
  3044.         etoam
  3045.         puts
  3046.         free
  3047.         call    PutFPAcc
  3048.         putcr
  3049.         loop    MultLoop
  3050.         putcr
  3051. ;
  3052. ;---
  3053. ;
  3054.         print
  3055.         db    "More multiply tests...",cr,lf,lf,0
  3056. ;
  3057.         lefpal
  3058.         dt    0.0000000000000000001
  3059.         mov    cx, 20
  3060. MultLoop2:    lefpol
  3061.         dt    -10.0
  3062.         fpmul
  3063.         mov    ax, 24h
  3064.         etoam
  3065.         puts
  3066.         free
  3067.         call    PutFPAcc
  3068.         putcr
  3069.         loop    MultLoop2
  3070.         putcr
  3071. ;
  3072. ;
  3073. ;-----
  3074. ;
  3075.         print
  3076.         db    "Some Division Tests:",cr,lf,lf,0
  3077. ;
  3078.         mov    cx, 20
  3079.         lefpal
  3080.         dt    1.0e+15
  3081. DivLoop:    lefpol
  3082.         dt    -10.0
  3083.         fpdiv
  3084.         mov    ax, 24
  3085.         etoam
  3086.         puts
  3087.         free
  3088.         call    PutFPAcc
  3089.         putcr
  3090.         loop    DivLoop
  3091.         putcr
  3092. ;
  3093. ;
  3094. ;---
  3095. ;
  3096.         print
  3097.         db    "More Division Tests...",cr,lf,lf,0
  3098. ;
  3099.         lefpal
  3100.         dt    1.0e-15
  3101.         mov    cx, 20
  3102. DivLoop2:    lefpol
  3103.         dt    -1.0e-1
  3104.         fpdiv
  3105.         mov    ax, 24
  3106.         etoam
  3107.         puts
  3108.         free
  3109.         call    PutFPAcc
  3110.         putcr
  3111.         loop    DivLoop2
  3112.         putcr
  3113. ;
  3114. ;
  3115. ;------
  3116. ;
  3117.         print
  3118.         db    "Testing FPCMP...",cr,lf,0
  3119. ;
  3120.         lefpal
  3121.         dt    0.0
  3122.         lefpol
  3123.         dt    0.0
  3124.         fpcmp
  3125.         pushf
  3126.         print
  3127.         db    "AX = ",0
  3128.         puti
  3129.         popf
  3130.         je    TheyreEql0
  3131.         print
  3132.         db    " 0.0 <> 0.0",cr,lf,0
  3133.         jmp    EndTest0
  3134. ;
  3135. TheyreEql0:    print
  3136.         db    " 0.0 = 0.0",cr,lf,0
  3137. EndTest0:
  3138. ;
  3139.         lefpal
  3140.         dt    1.0
  3141.         lefpol
  3142.         dt    0.0
  3143.         fpcmp
  3144.         pushf
  3145.         print
  3146.         db    "AX = ",0
  3147.         puti
  3148.         popf
  3149.         je    TheyreEql1
  3150.         print
  3151.         db    " 1.0 <> 0.0",cr,lf,0
  3152.         jmp    EndTest1
  3153. ;
  3154. TheyreEql1:    print
  3155.         db    " 1.0 = 0.0",cr,lf,0
  3156. EndTest1:
  3157. ;
  3158.         lefpal
  3159.         dt    0.0
  3160.         lefpol
  3161.         dt    1.0
  3162.         fpcmp
  3163.         pushf
  3164.         print
  3165.         db    "AX = ",0
  3166.         puti
  3167.         popf
  3168.         je    TheyreEql2
  3169.         print
  3170.         db    " 0.0 <> 1.0",cr,lf,0
  3171.         jmp    EndTest2
  3172. ;
  3173. TheyreEql2:    print
  3174.         db    " 0.0 = 1.0",cr,lf,0
  3175. EndTest2:
  3176. ;
  3177.         lefpal
  3178.         dt    -1.0
  3179.         lefpol
  3180.         dt    0.0
  3181.         fpcmp
  3182.         pushf
  3183.         print
  3184.         db    "AX = ",0
  3185.         puti
  3186.         popf
  3187.         je    TheyreEql3
  3188.         print
  3189.         db    " -1.0 <> 0.0",cr,lf,0
  3190.         jmp    EndTest3
  3191. ;
  3192. TheyreEql3:    print
  3193.         db    " -1.0 = 1.0",cr,lf,0
  3194. EndTest3:
  3195. ;
  3196.         lefpal
  3197.         dt    0.0
  3198.         lefpol
  3199.         dt    -1.0
  3200.         fpcmp
  3201.         pushf
  3202.         print
  3203.         db    "AX = ",0
  3204.         puti
  3205.         popf
  3206.         je    TheyreEql4
  3207.         print
  3208.         db    " 0.0 <> -1.0",cr,lf,0
  3209.         jmp    EndTest4
  3210. ;
  3211. TheyreEql4:    print
  3212.         db    " 0.0 = -1.0",cr,lf,0
  3213. EndTest4:
  3214. ;
  3215.         lefpal
  3216.         dt    1.0
  3217.         lefpol
  3218.         dt    1.0
  3219.         fpcmp
  3220.         pushf
  3221.         print
  3222.         db    "AX = ",0
  3223.         puti
  3224.         popf
  3225.         je    TheyreEql5
  3226.         print
  3227.         db    " 1.0 <> 1.0",cr,lf,0
  3228.         jmp    EndTest5
  3229. ;
  3230. TheyreEql5:    print
  3231.         db    " 1.0 = 1.0",cr,lf,0
  3232. EndTest5:
  3233. ;
  3234.         lefpal
  3235.         dt    -1.0
  3236.         lefpol
  3237.         dt    1.0
  3238.         fpcmp
  3239.         pushf
  3240.         print
  3241.         db    "AX = ",0
  3242.         puti
  3243.         popf
  3244.         je    TheyreEql6
  3245.         print
  3246.         db    " -1.0 <> 1.0",cr,lf,0
  3247.         jmp    EndTest6
  3248. ;
  3249. TheyreEql6:    print
  3250.         db    " -1.0 = 1.0",cr,lf,0
  3251. EndTest6:
  3252. ;
  3253.         lefpal
  3254.         dt    -1.0
  3255.         lefpol
  3256.         dt    -1.0
  3257.         fpcmp
  3258.         pushf
  3259.         print
  3260.         db    "AX = ",0
  3261.         puti
  3262.         popf
  3263.         je    TheyreEql7
  3264.         print
  3265.         db    " -1.0 <> -1.0",cr,lf,0
  3266.         jmp    EndTest7
  3267. ;
  3268. TheyreEql7:    print
  3269.         db    " -1.0 = -1.0",cr,lf,0
  3270. EndTest7:
  3271. ;
  3272.         lefpal
  3273.         dt    0.5
  3274.         lefpol
  3275.         dt    1.0
  3276.         fpcmp
  3277.         pushf
  3278.         print
  3279.         db    "AX = ",0
  3280.         puti
  3281.         popf
  3282.         je    TheyreEql8
  3283.         print
  3284.         db    " 0.5 <> 1.0",cr,lf,0
  3285.         jmp    EndTest8
  3286. ;
  3287. TheyreEql8:    print
  3288.         db    " 0.5 = 1.0",cr,lf,0
  3289. EndTest8:
  3290. ;
  3291.         lefpal
  3292.         dt    1.0
  3293.         lefpol
  3294.         dt    0.5
  3295.         fpcmp
  3296.         pushf
  3297.         print
  3298.         db    "AX = ",0
  3299.         puti
  3300.         popf
  3301.         je    TheyreEql9
  3302.         print
  3303.         db    " 1.0 <> 0.5",cr,lf,0
  3304.         jmp    EndTest9
  3305. ;
  3306. TheyreEql9:    print
  3307.         db    " 1.0 = 0.5",cr,lf,0
  3308. EndTest9:
  3309. ;
  3310.         lefpal
  3311.         dt    1.0
  3312.         lefpol
  3313.         dt    1.5
  3314.         fpcmp
  3315.         pushf
  3316.         print
  3317.         db    "AX = ",0
  3318.         puti
  3319.         popf
  3320.         je    TheyreEqla
  3321.         print
  3322.         db    " 1.0 <> 1.5",cr,lf,0
  3323.         jmp    EndTesta
  3324. ;
  3325. TheyreEqla:    print
  3326.         db    " 1.0 = 1.5",cr,lf,0
  3327. EndTesta:
  3328. ;
  3329.         lefpal
  3330.         dt    1.5
  3331.         lefpol
  3332.         dt    1.0
  3333.         fpcmp
  3334.         pushf
  3335.         print
  3336.         db    "(17) AX = ",0
  3337.         puti
  3338.         popf
  3339.         je    TheyreEqlb
  3340.         print
  3341.         db    " 1.5 <> 1.0",cr,lf,0
  3342.         jmp    EndTestb
  3343. ;
  3344. TheyreEqlb:    print
  3345.         db    " 1.5 = 1.0",cr,lf,0
  3346. EndTestb:
  3347. ;
  3348.         lefpal
  3349.         dt    1.00000000000000005
  3350.         lefpol
  3351.         dt    1.0
  3352.         fpcmp
  3353.         pushf
  3354.         print
  3355.         db    "(18) AX = ",0
  3356.         puti
  3357.         popf
  3358.         je    TheyreEqlc
  3359.         print
  3360.         db    " 1.00000000000000005 <> 1.0",cr,lf,0
  3361.         jmp    EndTestc
  3362. ;
  3363. TheyreEqlc:    print
  3364.         db    " 1.00000000000000005 = 1.0",cr,lf,0
  3365. EndTestc:
  3366. ;
  3367.         lefpal
  3368.         dt    1.000000000000000005
  3369.         lefpol
  3370.         dt    1.0
  3371.         fpcmp
  3372.         pushf
  3373.         print
  3374.         db    "(19) AX = ",0
  3375.         puti
  3376.         popf
  3377.         je    TheyreEqld
  3378.         print
  3379.         db    " 1.000000000000000005 <> 1.0",cr,lf,0
  3380.         jmp    EndTestd
  3381. ;
  3382. TheyreEqld:    print
  3383.         db    " 1.000000000000000005 = 1.0",cr,lf,0
  3384. EndTestd:
  3385. ;
  3386.         lefpal
  3387.         dt    1.0000000000000000005
  3388.         lefpol
  3389.         dt    1.0
  3390.         fpcmp
  3391.         pushf
  3392.         print
  3393.         db    "(20) AX = ",0
  3394.         puti
  3395.         popf
  3396.         je    TheyreEqle
  3397.         print
  3398.         db    " 1.0000000000000000005 <> 1.0",cr,lf,0
  3399.         jmp    EndTeste
  3400. ;
  3401. TheyreEqle:    print
  3402.         db    " 1.0000000000000000005 = 1.0",cr,lf,0
  3403. EndTeste:
  3404. ;
  3405.         lefpal
  3406.         dt    1.00000000000000000005
  3407.         lefpol
  3408.         dt    1.0
  3409.         fpcmp
  3410.         pushf
  3411.         print
  3412.         db    "(21) AX = ",0
  3413.         puti
  3414.         popf
  3415.         je    TheyreEqlf
  3416.         print
  3417.         db    " 1.00000000000000000005 <> 1.0",cr,lf,0
  3418.         jmp    EndTestf
  3419. ;
  3420. TheyreEqlf:    print
  3421.         db    " 1.00000000000000000005 = 1.0",cr,lf,0
  3422. EndTestf:
  3423. ;
  3424.         lefpal
  3425.         dt    1.000000000000000000005
  3426.         lefpol
  3427.         dt    1.0
  3428.         fpcmp
  3429.         pushf
  3430.         print
  3431.         db    "(22) AX = ",0
  3432.         puti
  3433.         popf
  3434.         je    TheyreEqlg
  3435.         print
  3436.         db    " 1.000000000000000000005 <> 1.0",cr,lf,0
  3437.         jmp    EndTestg
  3438. ;
  3439. TheyreEqlg:    print
  3440.         db    " 1.000000000000000000005 = 1.0",cr,lf,0
  3441. EndTestg:
  3442. ;
  3443.         lefpal
  3444.         dt    1.0000000000000000000005
  3445.         lefpol
  3446.         dt    1.0
  3447.         fpcmp
  3448.         pushf
  3449.         print
  3450.         db    "(23) AX = ",0
  3451.         puti
  3452.         popf
  3453.         je    TheyreEqlh
  3454.         print
  3455.         db    " 1.0000000000000000000005 <> 1.0",cr,lf,0
  3456.         jmp    EndTesth
  3457. ;
  3458. TheyreEqlh:    print
  3459.         db    " 1.0000000000000000000005 = 1.0",cr,lf,0
  3460. EndTesth:
  3461. ;
  3462.         lefpal
  3463.         dt    1.0e10
  3464.         lefpol
  3465.         dt    1.0e100
  3466.         fpcmp
  3467.         pushf
  3468.         print
  3469.         db    "AX = ",0
  3470.         puti
  3471.         popf
  3472.         je    TheyreEqli
  3473.         print
  3474.         db    " 1.0e10 <> 1.0e100",cr,lf,0
  3475.         jmp    EndTesti
  3476. ;
  3477. TheyreEqli:    print
  3478.         db    " 1.0e10 = 1.0e100",cr,lf,0
  3479. EndTesti:
  3480. ;
  3481.         lefpal
  3482.         dt    1.0e100
  3483.         lefpol
  3484.         dt    1.0e10
  3485.         fpcmp
  3486.         pushf
  3487.         print
  3488.         db    "AX = ",0
  3489.         puti
  3490.         popf
  3491.         je    TheyreEqlj
  3492.         print
  3493.         db    " 1.0e100 <> 1.0e10",cr,lf,0
  3494.         jmp    EndTestj
  3495. ;
  3496. TheyreEqlj:    print
  3497.         db    " 1.0e100 = 1.0e10",cr,lf,0
  3498. EndTestj:
  3499. ;
  3500. ;
  3501.         lefpal
  3502.         dt    1.0e-100
  3503.         lefpol
  3504.         dt    1.0e-10
  3505.         fpcmp
  3506.         pushf
  3507.         print
  3508.         db    "AX = ",0
  3509.         puti
  3510.         popf
  3511.         je    TheyreEqlk
  3512.         print
  3513.         db    " 1.0e-100 <> 1.0e-10",cr,lf,0
  3514.         jmp    EndTestk
  3515. ;
  3516. TheyreEqlk:    print
  3517.         db    " 1.0e-100 = 1.0e-10",cr,lf,0
  3518. EndTestk:
  3519. ;
  3520.         lefpal
  3521.         dt    1.0e-100
  3522.         lefpol
  3523.         dt    1.0e-100
  3524.         fpcmp
  3525.         pushf
  3526.         print
  3527.         db    "AX = ",0
  3528.         puti
  3529.         popf
  3530.         je    TheyreEqll
  3531.         print
  3532.         db    " 1.0e-100 <> 1.0e-100",cr,lf,0
  3533.         jmp    EndTestl
  3534. ;
  3535. TheyreEqll:    print
  3536.         db    " 1.0e-100 = 1.0e-100",cr,lf,0
  3537. EndTestl:
  3538. ;
  3539.         lefpal
  3540.         dt    1.0
  3541.         lefpol
  3542.         dt    2.0
  3543.         fpcmp
  3544.         pushf
  3545.         print
  3546.         db    "AX = ",0
  3547.         puti
  3548.         popf
  3549.         jge    TheyreEqlm
  3550.         print
  3551.         db    " 1.0 < 2.0",cr,lf,0
  3552.         jmp    EndTestm
  3553. ;
  3554. TheyreEqlm:    print
  3555.         db    " 1.0 >= 2.0",cr,lf,0
  3556. EndTestm:
  3557. ;
  3558.         lefpal
  3559.         dt    1.0
  3560.         lefpol
  3561.         dt    2.0
  3562.         fpcmp
  3563.         pushf
  3564.         print
  3565.         db    "AX = ",0
  3566.         puti
  3567.         popf
  3568.         jg    TheyreEqln
  3569.         print
  3570.         db    " 1.0 <= 2.0",cr,lf,0
  3571.         jmp    EndTestn
  3572. ;
  3573. TheyreEqln:    print
  3574.         db    " 1.0 > 2.0",cr,lf,0
  3575. EndTestn:
  3576. ;
  3577.         lefpal
  3578.         dt    1.0
  3579.         lefpol
  3580.         dt    2.0
  3581.         fpcmp
  3582.         pushf
  3583.         print
  3584.         db    "AX = ",0
  3585.         puti
  3586.         popf
  3587.         jle    TheyreEqlo
  3588.         print
  3589.         db    " 1.0 > 2.0",cr,lf,0
  3590.         jmp    EndTesto
  3591. ;
  3592. TheyreEqlo:    print
  3593.         db    " 1.0 <= 2.0",cr,lf,0
  3594. EndTesto:
  3595. ;
  3596.         lefpal
  3597.         dt    2.0
  3598.         lefpol
  3599.         dt    1.0
  3600.         fpcmp
  3601.         pushf
  3602.         print
  3603.         db    "AX = ",0
  3604.         puti
  3605.         popf
  3606.         jle    TheyreEqlp
  3607.         print
  3608.         db    " 2.0 > 1.0",cr,lf,0
  3609.         jmp    EndTestp
  3610. ;
  3611. TheyreEqlp:    print
  3612.         db    " 2.0 <= 1.0",cr,lf,0
  3613. EndTestp:
  3614.         putcr
  3615.         putcr
  3616. ;
  3617. ;
  3618. ;
  3619. ;
  3620. ;
  3621. ;
  3622. ;
  3623. ;----------
  3624. ;
  3625.         print
  3626.         db    "Testing FTOAM...",cr,lf,0
  3627. ;
  3628.         print
  3629.         db    "Printing various forms of 1.12345678901234567890"
  3630.         db    cr,lf,"Remember only 17 significant digits get printed"
  3631.         db    cr,lf,0
  3632.         lefpal
  3633.         dt    1.12345678901234567890
  3634.         mov    cx, 20
  3635. DigitsLoop:    mov    ah, cl
  3636.         mov    al, 24
  3637.         ftoam
  3638.         puts
  3639.         free
  3640.         putcr
  3641.         loop    DigitsLoop
  3642. ;
  3643.         print
  3644.         db    cr,lf,"Testing FTOA...",cr,lf,0
  3645.         mov    cx, 20
  3646. DigitsLoop2:    mov    ah, cl
  3647.         mov    al, 24
  3648.         lesi    Output
  3649.         ftoa
  3650.         puts
  3651.         putcr
  3652.         loop    DigitsLoop2
  3653. ;
  3654.         print
  3655.         db    cr,lf,"Testing FTOA2 (  1.00  1.00)",cr,lf,'"',0
  3656.         lefpal
  3657.         dt    1.0
  3658.         lesi    Output
  3659.         mov    ax,206h
  3660.         ftoa2
  3661.         ftoa2
  3662.         lesi    Output
  3663.         puts
  3664.         mov    al, '"'
  3665.         putc
  3666.         putcr
  3667. ;
  3668. ;
  3669. ;
  3670. ;----------
  3671. ;
  3672.         print
  3673.         db    cr,lf
  3674.         db    "Testing ETOAM...",cr,lf,0
  3675. ;
  3676.         print
  3677.         db    "Printing various forms of 1.12345678901234567890"
  3678.         db    cr,lf,"Remember only 17 significant digits get printed"
  3679.         db    cr,lf,0
  3680.         lefpal
  3681.         dt    1.12345678901234567890
  3682.         mov    cx, 20
  3683. DigitsLoop3:    mov    al, cl
  3684.         add    al, 8
  3685.         etoam
  3686.         puts
  3687.         free
  3688.         putcr
  3689.         loop    DigitsLoop3
  3690. ;
  3691.         print
  3692.         db    cr,lf,"Testing ETOA...",cr,lf,0
  3693.         mov    cx, 20
  3694. DigitsLoop4:    mov    al, cl
  3695.         add    al, 8
  3696.         puth
  3697.         print
  3698.         db    ": ",0
  3699.         lesi    Output
  3700.         etoa
  3701.         puts
  3702.         putcr
  3703.         loop    DigitsLoop4
  3704. ;
  3705.         print
  3706.         db    cr,lf,"Testing ETOA2",cr,lf,'"',0
  3707.         lefpal
  3708.         dt    1.0
  3709.         lesi    Output
  3710.         mov    ax,20ah
  3711.         etoa2
  3712.         etoa2
  3713.         lesi    Output
  3714.         puts
  3715.         mov    al, '"'
  3716.         putc
  3717.         putcr
  3718. ;
  3719. ;
  3720. ;------
  3721. ;
  3722. Testatof    macro    op
  3723.         lesi    op
  3724.         puts
  3725.         print
  3726.         db    " = ",0
  3727.         atof
  3728.         ftoam
  3729.         mov    al, 32
  3730.         etoam
  3731.         puts
  3732.         putcr
  3733.         endm
  3734. ;
  3735. ;
  3736.         print
  3737.         db    cr,lf,"Testing ATOF...",cr,lf,lf,0
  3738. ;
  3739.         Testatof    Testatof1
  3740.         Testatof    Testatof2
  3741.         Testatof    Testatof3
  3742.         Testatof    Testatof4
  3743.         Testatof    Testatof5
  3744.         Testatof    Testatof6
  3745.         Testatof    Testatof7
  3746.         Testatof    Testatof8
  3747.         Testatof    Testatof9
  3748.         Testatof    Testatof10
  3749.         Testatof    Testatof11
  3750.         Testatof    Testatof12
  3751.         Testatof    Testatof13
  3752.         Testatof    Testatof14
  3753.         Testatof    Testatof15
  3754.         Testatof    Testatof16
  3755.         Testatof    Testatof17
  3756.         Testatof    Testatof18
  3757.         Testatof    Testatof19
  3758.         Testatof    Testatof20
  3759.         Testatof    Testatof21
  3760.         Testatof    Testatof22
  3761.         Testatof    Testatof23
  3762.         Testatof    Testatof24
  3763.         Testatof    Testatof25
  3764.         Testatof    Testatof26
  3765.         Testatof    Testatof27
  3766.         Testatof    Testatof28
  3767.         Testatof    Testatof29
  3768.         Testatof    Testatof30
  3769.         Testatof    Testatof31
  3770.         Testatof    Testatof32
  3771.         Testatof    Testatof33
  3772.         Testatof    Testatof34
  3773.         Testatof    Testatof35
  3774.         Testatof    Testatof36
  3775.         Testatof    Testatof37
  3776.         Testatof    Testatof38
  3777.         Testatof    Testatof39
  3778.         Testatof    Testatof40
  3779.         Testatof    Testatof41
  3780.         Testatof    Testatof42
  3781.         Testatof    Testatof43
  3782.         Testatof    Testatof44
  3783.         Testatof    Testatof45
  3784.         Testatof    Testatof46
  3785.         Testatof    Testatof47
  3786.         Testatof    Testatof48
  3787.         Testatof    Testatof49
  3788.         Testatof    Testatof50
  3789.         Testatof    Testatof51
  3790.         Testatof    Testatof52
  3791. ;
  3792.         putcr
  3793. ;
  3794.         Testatof    mTestatof11
  3795.         Testatof    mTestatof12
  3796.         Testatof    mTestatof13
  3797.         Testatof    mTestatof14
  3798.         Testatof    mTestatof15
  3799.         Testatof    mTestatof16
  3800.         Testatof    mTestatof17
  3801.         Testatof    mTestatof18
  3802.         Testatof    mTestatof19
  3803.         Testatof    mTestatof20
  3804.         Testatof    mTestatof21
  3805.         Testatof    mTestatof22
  3806.         Testatof    mTestatof23
  3807.         Testatof    mTestatof24
  3808.         Testatof    mTestatof25
  3809.         Testatof    mTestatof26
  3810.         Testatof    mTestatof27
  3811.         Testatof    mTestatof28
  3812.         Testatof    mTestatof29
  3813.         Testatof    mTestatof30
  3814.         Testatof    mTestatof31
  3815.         Testatof    mTestatof32
  3816.         Testatof    mTestatof33
  3817.         Testatof    mTestatof34
  3818.         Testatof    mTestatof35
  3819.         Testatof    mTestatof36
  3820.         Testatof    mTestatof37
  3821.         Testatof    mTestatof38
  3822.         Testatof    mTestatof39
  3823.         Testatof    mTestatof40
  3824.         Testatof    mTestatof41
  3825.         Testatof    mTestatof42
  3826.         Testatof    mTestatof43
  3827.         Testatof    mTestatof44
  3828.         Testatof    mTestatof45
  3829.         Testatof    mTestatof46
  3830.         Testatof    mTestatof47
  3831.         Testatof    mTestatof48
  3832.         Testatof    mTestatof49
  3833.         Testatof    mTestatof50
  3834.         Testatof    mTestatof51
  3835.         Testatof    mTestatof52
  3836.         Testatof    mTestatof53
  3837.         putcr
  3838.         putcr
  3839. ;
  3840. ;
  3841. ;
  3842. ;---------
  3843. ;
  3844.         print
  3845.         db    "Testing FTOI...",cr,lf,lf,0
  3846. ;
  3847.         lefpal
  3848.         dt    1.0
  3849.         ftoi
  3850.         print
  3851.         db    "1.0 = ",0
  3852.         puti
  3853. ;
  3854.         lefpal
  3855.         dt    10.0
  3856.         ftoi
  3857.         print
  3858.         db    cr,lf,"10.0 = ",0
  3859.         puti
  3860. ;
  3861.         lefpal
  3862.         dt    100.0
  3863.         ftoi
  3864.         print
  3865.         db    cr,lf,"100.0 = ",0
  3866.         puti
  3867. ;
  3868.         lefpal
  3869.         dt    1000.0
  3870.         ftoi
  3871.         print
  3872.         db    cr,lf,"1000.0 = ",0
  3873.         puti
  3874. ;
  3875.         lefpal
  3876.         dt    10000.0
  3877.         ftoi
  3878.         print
  3879.         db    cr,lf,"10000.0 = ",0
  3880.         puti
  3881. ;
  3882.         lefpal
  3883.         dt    32767.0
  3884.         ftoi
  3885.         print
  3886.         db    cr,lf,"32767.0 = ",0
  3887.         puti
  3888. ;
  3889.         lefpal
  3890.         dt    0.0
  3891.         ftoi
  3892.         print
  3893.         db    cr,lf,"0.0 = ",0
  3894.         puti
  3895. ;
  3896.         lefpal
  3897.         dt    -1.0
  3898.         ftoi
  3899.         print
  3900.         db    cr,lf,"-1.0 = ",0
  3901.         puti
  3902. ;
  3903.         lefpal
  3904.         dt    -10.0
  3905.         ftoi
  3906.         print
  3907.         db    cr,lf,"-10.0 = ",0
  3908.         puti
  3909. ;
  3910.         lefpal
  3911.         dt    -100.0
  3912.         ftoi
  3913.         print
  3914.         db    cr,lf,"-100.0 = ",0
  3915.         puti
  3916. ;
  3917.         lefpal
  3918.         dt    -1000.0
  3919.         ftoi
  3920.         print
  3921.         db    cr,lf,"-1000.0 = ",0
  3922.         puti
  3923. ;
  3924.         lefpal
  3925.         dt    -10000.0
  3926.         ftoi
  3927.         print
  3928.         db    cr,lf,"-10000.0 = ",0
  3929.         puti
  3930. ;
  3931.         lefpal
  3932.         dt    -32768.0
  3933.         ftoi
  3934.         print
  3935.         db    cr,lf,"-32768.0 = ",0
  3936.         puti
  3937. ;
  3938. ;
  3939. ;---------
  3940. ;
  3941.         print
  3942.         db    cr,lf,lf,"Testing FTOU...",cr,lf,lf,0
  3943. ;
  3944.         lefpal
  3945.         dt    1.0
  3946.         ftou
  3947.         print
  3948.         db    "1.0 = ",0
  3949.         putu
  3950. ;
  3951.         lefpal
  3952.         dt    10.0
  3953.         ftou
  3954.         print
  3955.         db    cr,lf,"10.0 = ",0
  3956.         putu
  3957. ;
  3958.         lefpal
  3959.         dt    100.0
  3960.         ftou
  3961.         print
  3962.         db    cr,lf,"100.0 = ",0
  3963.         putu
  3964. ;
  3965.         lefpal
  3966.         dt    1000.0
  3967.         ftou
  3968.         print
  3969.         db    cr,lf,"1000.0 = ",0
  3970.         putu
  3971. ;
  3972.         lefpal
  3973.         dt    10000.0
  3974.         ftou
  3975.         print
  3976.         db    cr,lf,"10000.0 = ",0
  3977.         putu
  3978. ;
  3979.         lefpal
  3980.         dt    65535.0
  3981.         ftou
  3982.         print
  3983.         db    cr,lf,"65535.0 = ",0
  3984.         putu
  3985. ;
  3986.         lefpal
  3987.         dt    0.0
  3988.         ftou
  3989.         print
  3990.         db    cr,lf,"0.0 = ",0
  3991.         putu
  3992. ;
  3993. ;
  3994. ;---------
  3995. ;
  3996.         print
  3997.         db    cr,lf,lf,"Testing FTOL...",cr,lf,lf,0
  3998. ;
  3999.         lefpal
  4000.         dt    1.0
  4001.         ftol
  4002.         print
  4003.         db    "1.0 = ",0
  4004.         putl
  4005.         print
  4006.         db    "  ",0
  4007.         xchg    dx, ax
  4008.         putw
  4009.         xchg    dx, ax
  4010.         putw
  4011. ;
  4012.         lefpal
  4013.         dt    10.0
  4014.         ftol
  4015.         print
  4016.         db    cr,lf,"10.0 = ",0
  4017.         putl
  4018. ;
  4019.         lefpal
  4020.         dt    100.0
  4021.         ftol
  4022.         print
  4023.         db    cr,lf,"100.0 = ",0
  4024.         putl
  4025. ;
  4026.         lefpal
  4027.         dt    1000.0
  4028.         ftol
  4029.         print
  4030.         db    cr,lf,"1000.0 = ",0
  4031.         putl
  4032. ;
  4033.         lefpal
  4034.         dt    10000.0
  4035.         ftol
  4036.         print
  4037.         db    cr,lf,"10000.0 = ",0
  4038.         putl
  4039. ;
  4040.         lefpal
  4041.         dt    32767.0
  4042.         ftol
  4043.         print
  4044.         db    cr,lf,"32767.0 = ",0
  4045.         putl
  4046. ;
  4047.         lefpal
  4048.         dt    32768.0
  4049.         ftol
  4050.         print
  4051.         db    cr,lf,"32768.0 = ",0
  4052.         putl
  4053. ;
  4054.         lefpal
  4055.         dt    65535.0
  4056.         ftol
  4057.         print
  4058.         db    cr,lf,"65535.0 = ",0
  4059.         putl
  4060. ;
  4061.         lefpal
  4062.         dt    65536.0
  4063.         ftol
  4064.         print
  4065.         db    cr,lf,"65536.0 = ",0
  4066.         putl
  4067. ;
  4068.         lefpal
  4069.         dt    100000.0
  4070.         ftol
  4071.         print
  4072.         db    cr,lf,"100000.0 = ",0
  4073.         putl
  4074. ;
  4075.         lefpal
  4076.         dt    1000000.0
  4077.         ftol
  4078.         print
  4079.         db    cr,lf,"1000000.0 = ",0
  4080.         putl
  4081. ;
  4082.         lefpal
  4083.         dt    2.0e9
  4084.         ftol
  4085.         print
  4086.         db    cr,lf,"2e9 = ",0
  4087.         putl
  4088. ;
  4089.         lefpal
  4090.         dt    0.0
  4091.         ftol
  4092.         print
  4093.         db    cr,lf,"0.0 = ",0
  4094.         putl
  4095. ;
  4096.         lefpal
  4097.         dt    -1.0
  4098.         ftol
  4099.         print
  4100.         db    cr,lf,"-1.0 = ",0
  4101.         putl
  4102. ;
  4103.         lefpal
  4104.         dt    -10.0
  4105.         ftol
  4106.         print
  4107.         db    cr,lf,"-10.0 = ",0
  4108.         putl
  4109. ;
  4110.         lefpal
  4111.         dt    -100.0
  4112.         ftol
  4113.         print
  4114.         db    cr,lf,"-100.0 = ",0
  4115.         putl
  4116. ;
  4117.         lefpal
  4118.         dt    -1000.0
  4119.         ftol
  4120.         print
  4121.         db    cr,lf,"-1000.0 = ",0
  4122.         putl
  4123. ;
  4124.         lefpal
  4125.         dt    -10000.0
  4126.         ftol
  4127.         print
  4128.         db    cr,lf,"-10000.0 = ",0
  4129.         putl
  4130. ;
  4131.         lefpal
  4132.         dt    -32768.0
  4133.         ftol
  4134.         print
  4135.         db    cr,lf,"-32768.0 = ",0
  4136.         putl
  4137. ;
  4138. ;
  4139. ;
  4140. ;---------
  4141. ;
  4142.         print
  4143.         db    cr,lf,lf,"Testing FTOUL...",cr,lf,lf,0
  4144. ;
  4145.         lefpal
  4146.         dt    1.0
  4147.         ftoul
  4148.         print
  4149.         db    "1.0 = ",0
  4150.         putul
  4151. ;
  4152.         lefpal
  4153.         dt    10.0
  4154.         ftoul
  4155.         print
  4156.         db    cr,lf,"10.0 = ",0
  4157.         putul
  4158. ;
  4159.         lefpal
  4160.         dt    100.0
  4161.         ftoul
  4162.         print
  4163.         db    cr,lf,"100.0 = ",0
  4164.         putul
  4165. ;
  4166.         lefpal
  4167.         dt    1000.0
  4168.         ftoul
  4169.         print
  4170.         db    cr,lf,"1000.0 = ",0
  4171.         putul
  4172. ;
  4173.         lefpal
  4174.         dt    10000.0
  4175.         ftoul
  4176.         print
  4177.         db    cr,lf,"10000.0 = ",0
  4178.         putul
  4179. ;
  4180.         lefpal
  4181.         dt    32767.0
  4182.         ftoul
  4183.         print
  4184.         db    cr,lf,"32767.0 = ",0
  4185.         putul
  4186. ;
  4187.         lefpal
  4188.         dt    32768.0
  4189.         ftoul
  4190.         print
  4191.         db    cr,lf,"32768.0 = ",0
  4192.         putul
  4193. ;
  4194.         lefpal
  4195.         dt    65535.0
  4196.         ftoul
  4197.         print
  4198.         db    cr,lf,"65535.0 = ",0
  4199.         putul
  4200. ;
  4201.         lefpal
  4202.         dt    65536.0
  4203.         ftoul
  4204.         print
  4205.         db    cr,lf,"65536.0 = ",0
  4206.         putul
  4207. ;
  4208.         lefpal
  4209.         dt    100000.0
  4210.         ftoul
  4211.         print
  4212.         db    cr,lf,"100000.0 = ",0
  4213.         putul
  4214. ;
  4215.         lefpal
  4216.         dt    1000000.0
  4217.         ftoul
  4218.         print
  4219.         db    cr,lf,"1000000.0 = ",0
  4220.         putul
  4221. ;
  4222.         mov    ax, 0ffffh
  4223.         mov    dx, 07fffh
  4224.         ultof
  4225.         ftoul
  4226.         print
  4227.         db    cr,lf,"2^31-1 = ",0
  4228.         putul
  4229. ;
  4230. ;
  4231.         mov    ax, 0ffffh
  4232.         mov    dx, ax
  4233.         ultof
  4234.         ftoul
  4235.         print
  4236.         db    cr,lf,"2^32-1 = ",0
  4237.         putul
  4238. ;
  4239.         lefpal
  4240.         dt    0.0
  4241.         ftoul
  4242.         print
  4243.         db    cr,lf,"0.0 = ",0
  4244.         putul
  4245. ;
  4246. ;
  4247. ;
  4248. ;
  4249. ;
  4250. ;
  4251. ;
  4252. ;***************************************************************************
  4253. ;
  4254. ;
  4255. ;
  4256. Quit:        mov     ah, 4ch
  4257.         int     21h
  4258. ;
  4259. ;
  4260. Main        endp
  4261. ;
  4262. ;
  4263. ;
  4264. ;
  4265. ; Putfpacc- Prints the floating point accumulator:
  4266. ;
  4267. Putfpacc    proc    near
  4268.         assume    ds:StdGrp
  4269.         push    ds
  4270.         push    ax
  4271.         mov    ax, StdGrp
  4272.         mov    ds, ax
  4273.         call    Putspace
  4274.         call    Putspace
  4275.         mov    al, StdGrp:fpacc
  4276.         puth
  4277.         call    Putspace
  4278.         mov    al, StdGrp:fpacc+1
  4279.         puth
  4280.         call    Putspace
  4281.         mov    al, StdGrp:fpacc+2
  4282.         puth
  4283.         call    Putspace
  4284.         mov    al, StdGrp:fpacc+3
  4285.         puth
  4286.         call    Putspace
  4287.         mov    al, StdGrp:fpacc+4
  4288.         puth
  4289.         call    Putspace
  4290.         mov    al, StdGrp:fpacc+5
  4291.         puth
  4292.         call    Putspace
  4293.         mov    al, StdGrp:fpacc+6
  4294.         puth
  4295.         call    Putspace
  4296.         mov    al, StdGrp:fpacc+7
  4297.         puth
  4298.         call    Putspace
  4299.         call    Putspace
  4300.         mov    al, StdGrp:fpacc+8
  4301.         puth
  4302.         call    Putspace
  4303.         mov    al, StdGrp:fpacc+9
  4304.         puth
  4305.         call    Putspace
  4306.         call    Putspace
  4307.         mov    al, StdGrp:fpacc+10
  4308.         puth
  4309. ;
  4310.         pop    ax
  4311.         pop    ds
  4312.         ret
  4313. PutFpacc    endp
  4314.         assume    ds:dseg
  4315. ;
  4316. PutSpace    proc    near
  4317.         push    ax
  4318.         mov    al, " "
  4319.         putc
  4320.         pop    ax
  4321.         ret
  4322. PutSpace    endp
  4323. ;
  4324. cseg            ends
  4325. ;
  4326. ;
  4327. ; Allocate a reasonable amount of space for the stack (2k).
  4328. ;
  4329. sseg        segment    para stack 'stack'
  4330. stk        db    256 dup ("stack   ")
  4331. sseg        ends
  4332. ;
  4333. ;
  4334. ;
  4335. ; zzzzzzseg must be the last segment that gets loaded into memory!
  4336. ;
  4337. zzzzzzseg    segment    para public 'zzzzzz'
  4338. LastBytes    db    16 dup (?)
  4339. heap        db    1024 dup (?)
  4340. zzzzzzseg    ends
  4341.         end    Main
  4342.